@teambit/pkg 0.0.881 → 0.0.883
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/exceptions/index.js +0 -9
- package/dist/exceptions/index.js.map +1 -1
- package/dist/exceptions/package-tar-filet-not-found.js +0 -6
- package/dist/exceptions/package-tar-filet-not-found.js.map +1 -1
- package/dist/exceptions/pkg-artifact-not-found.js +0 -6
- package/dist/exceptions/pkg-artifact-not-found.js.map +1 -1
- package/dist/exceptions/scope-not-found.js +0 -8
- package/dist/exceptions/scope-not-found.js.map +1 -1
- package/dist/index.js +0 -6
- package/dist/index.js.map +1 -1
- package/dist/pack.cmd.js +6 -20
- package/dist/pack.cmd.js.map +1 -1
- package/dist/pack.task.js +0 -9
- package/dist/pack.task.js.map +1 -1
- package/dist/package-dependency/index.js +0 -6
- package/dist/package-dependency/index.js.map +1 -1
- package/dist/package-dependency/package-dependency-factory.js +6 -22
- package/dist/package-dependency/package-dependency-factory.js.map +1 -1
- package/dist/package-dependency/package-dependency.js +0 -7
- package/dist/package-dependency/package-dependency.js.map +1 -1
- package/dist/package.fragment.js +0 -10
- package/dist/package.fragment.js.map +1 -1
- package/dist/package.route.js +2 -16
- package/dist/package.route.js.map +1 -1
- package/dist/packer.js +5 -39
- package/dist/packer.js.map +1 -1
- package/dist/pkg-artifact.js +0 -3
- package/dist/pkg-artifact.js.map +1 -1
- package/dist/pkg.aspect.js +0 -5
- package/dist/pkg.aspect.js.map +1 -1
- package/dist/pkg.composition.js +0 -6
- package/dist/pkg.composition.js.map +1 -1
- package/dist/pkg.graphql.js +0 -6
- package/dist/pkg.graphql.js.map +1 -1
- package/dist/pkg.main.runtime.js +28 -204
- package/dist/pkg.main.runtime.js.map +1 -1
- package/dist/pkg.service.js +0 -19
- package/dist/pkg.service.js.map +1 -1
- package/dist/pkg.ui.runtime.js +0 -27
- package/dist/pkg.ui.runtime.js.map +1 -1
- package/dist/prepare-packages.task.js +6 -37
- package/dist/prepare-packages.task.js.map +1 -1
- package/dist/publish-dry-run.task.js +2 -12
- package/dist/publish-dry-run.task.js.map +1 -1
- package/dist/publish.cmd.js +0 -23
- package/dist/publish.cmd.js.map +1 -1
- package/dist/publish.task.js +2 -12
- package/dist/publish.task.js.map +1 -1
- package/dist/publisher.js +5 -55
- package/dist/publisher.js.map +1 -1
- package/dist/write-npm-ignore.js +0 -12
- package/dist/write-npm-ignore.js.map +1 -1
- package/package-tar/teambit-pkg-0.0.883.tgz +0 -0
- package/package.json +13 -13
- package/{preview-1666409808293.js → preview-1666582798766.js} +2 -2
- package/package-tar/teambit-pkg-0.0.881.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PkgMain","provider","cli","scope","envs","isolator","logger","workspace","builder","dependencyResolver","componentAspect","graphql","config","packageJsonPropsRegistry","logPublisher","createLogger","PkgAspect","id","host","getHost","packer","Packer","publisher","Publisher","legacyScope","publishTask","PublishTask","packTask","PackTask","pkg","registerShowFragments","PackageFragment","registerDependencyFactories","PackageDependencyFactory","register","pkgSchema","registerService","PkgService","registerRoute","PackageRoute","preparePackagesTask","PreparePackagesTask","registerBuildTasks","registerTagTasks","registerSnapTasks","onComponentLoad","component","addMissingLinksFromNodeModulesIssue","data","mergePackageJsonProps","packageJsonModification","PackageJsonTransformer","registerPackageJsonTransformer","transformPackageJson","bind","PackCmd","PublishCmd","getPackageName","getRuntimeModulePath","options","relativePath","absPath","join","path","Error","getModulePath","isModulePathExists","packageDir","fs","existsSync","exist","state","issues","getOrCreate","IssuesClasses","MissingLinksFromNodeModulesToSrc","undefined","constructor","manifestCache","createInMemoryCache","maxSize","getMaxSizeForComponents","registerPackageJsonNewProps","props","packComponent","componentId","scopePath","newProps","mergeToNewProps","otherProps","files","merged","length","env","calculateEnv","getPackageJsonProps","propsFromEnv","configuredIds","aspects","ids","forEach","extId","get","currentExtension","currentConfig","packageJson","specialKeys","omit","getPackageJsonModifications","currentData","getPkgArtifact","artifacts","getArtifactsVinylByAspect","PkgArtifactNotFound","PkgArtifact","getManifest","name","latestVersion","latest","BitError","preReleaseLatestTags","tags","getPreReleaseLatestTags","snapToSemver","distTags","versionsFromCache","getVersions","headHash","head","hash","delete","manifest","versions","getAllSnapsManifests","versionsWithoutEmpty","compact","set","externalRegistry","isPublishedToExternalRegistry","iterable","snapsIterable","result","snap","getSnapManifest","push","pkgExt","publishConfig","getComponentBuildData","getDataByAspect","idWithCorrectVersion","changeVersion","version","getVersionInstance","_legacy","builderData","extensions","findCoreExtension","BuilderAspect","aspectsData","find","a","aspectId","pkgJson","checksum","error","toString","dist","shasum","tarball","getRoute","routePath","getPackageTarFile","getArtifactsVinylByAspectAndName","TAR_FILE_ARTIFACT_NAME","PackageTarFiletNotFound","legacyComponent","packageJsonObject","resolveComponentId","newComponent","Object","assign","MainRuntime","CLIAspect","ScopeAspect","EnvsAspect","IsolatorAspect","LoggerAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","GraphqlAspect","Slot","withType","addRuntime"],"sources":["pkg.main.runtime.ts"],"sourcesContent":["import { compact, omit } from 'lodash';\nimport { join } from 'path';\nimport fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain, IComponent, Snap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { PackageJsonTransformer } from '@teambit/legacy/dist/consumer/component/package-json-transformer';\nimport LegacyComponent from '@teambit/legacy/dist/consumer/component';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { CloneConfig } from '@teambit/new-component-helper';\nimport { BitError } from '@teambit/bit-error';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { GraphqlMain, GraphqlAspect } from '@teambit/graphql';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport { Packer, PackOptions, PackResult, TAR_FILE_ARTIFACT_NAME } from './packer';\n// import { BitCli as CLI, BitCliExt as CLIExtension } from '@teambit/cli';\nimport { PackCmd } from './pack.cmd';\nimport { PkgAspect } from './pkg.aspect';\nimport { PreparePackagesTask } from './prepare-packages.task';\nimport { PublishCmd } from './publish.cmd';\nimport { Publisher } from './publisher';\nimport { PublishTask } from './publish.task';\nimport { PackageTarFiletNotFound, PkgArtifactNotFound } from './exceptions';\nimport { PkgArtifact } from './pkg-artifact';\nimport { PackageRoute, routePath } from './package.route';\nimport { PackageDependencyFactory } from './package-dependency';\nimport { pkgSchema } from './pkg.graphql';\nimport { PackageFragment } from './package.fragment';\nimport { PackTask } from './pack.task';\nimport { PkgService } from './pkg.service';\n\nexport interface PackageJsonProps {\n [key: string]: any;\n}\n\nexport type PackageJsonPropsRegistry = SlotRegistry<PackageJsonProps>;\n\nexport type PkgExtensionConfig = {};\n\ntype GetModulePathOptions = { absPath?: boolean };\n\n/**\n * Config for variants\n */\nexport type ComponentPkgExtensionConfig = {\n /**\n * properties to add to the package.json of the component.\n */\n packageJson: Record<string, any>;\n};\n\n/**\n * Data stored in the component\n */\nexport type ComponentPkgExtensionData = {\n /**\n * properties to add to the package.json of the component.\n */\n packageJsonModification: Record<string, any>;\n\n /**\n * Final package.json after creating tar file\n */\n pkgJson?: Record<string, any>;\n\n /**\n * Checksum of the tar file\n */\n checksum?: string;\n};\n\nexport type ComponentPackageManifest = {\n name: string;\n distTags: Record<string, string>;\n externalRegistry: boolean;\n versions: VersionPackageManifest[];\n};\n\nexport type VersionPackageManifest = {\n [key: string]: any;\n dist: {\n tarball: string;\n shasum: string;\n };\n};\n\nexport class PkgMain implements CloneConfig {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n EnvsAspect,\n IsolatorAspect,\n LoggerAspect,\n WorkspaceAspect,\n BuilderAspect,\n DependencyResolverAspect,\n ComponentAspect,\n GraphqlAspect,\n ];\n static slots = [Slot.withType<PackageJsonProps>()];\n static defaultConfig = {};\n\n static async provider(\n [cli, scope, envs, isolator, logger, workspace, builder, dependencyResolver, componentAspect, graphql]: [\n CLIMain,\n ScopeMain,\n EnvsMain,\n IsolatorMain,\n LoggerMain,\n Workspace,\n BuilderMain,\n DependencyResolverMain,\n ComponentMain,\n GraphqlMain\n ],\n config: PkgExtensionConfig,\n [packageJsonPropsRegistry]: [PackageJsonPropsRegistry]\n ) {\n const logPublisher = logger.createLogger(PkgAspect.id);\n const host = componentAspect.getHost();\n const packer = new Packer(isolator, logPublisher, host, scope);\n const publisher = new Publisher(isolator, logPublisher, scope?.legacyScope, workspace);\n const publishTask = new PublishTask(PkgAspect.id, publisher, logPublisher);\n const packTask = new PackTask(PkgAspect.id, packer, logPublisher);\n const pkg = new PkgMain(\n logPublisher,\n config,\n packageJsonPropsRegistry,\n workspace,\n scope,\n builder,\n packer,\n envs,\n componentAspect,\n publishTask,\n dependencyResolver\n );\n\n componentAspect.registerShowFragments([new PackageFragment(pkg)]);\n dependencyResolver.registerDependencyFactories([new PackageDependencyFactory()]);\n\n graphql.register(pkgSchema(pkg));\n envs.registerService(new PkgService());\n\n componentAspect.registerRoute([new PackageRoute(pkg)]);\n\n // we ended up not using the publish-dry-run task. It used to run \"npm publish --dry-run\"\n // and also \"npm pack --dry-run\", but it's not that useful and it takes long to complete.\n // we might revise our decision later.\n // const dryRunTask = new PublishDryRunTask(PkgAspect.id, publisher, packer, logPublisher);\n const preparePackagesTask = new PreparePackagesTask(PkgAspect.id, logPublisher, envs);\n // dryRunTask.dependencies = [BuildTaskHelper.serializeId(preparePackagesTask)];\n builder.registerBuildTasks([preparePackagesTask]);\n builder.registerTagTasks([packTask, publishTask]);\n builder.registerSnapTasks([packTask]);\n if (workspace) {\n // workspace.onComponentLoad(pkg.mergePackageJsonProps.bind(pkg));\n workspace.onComponentLoad(async (component) => {\n await pkg.addMissingLinksFromNodeModulesIssue(component);\n const data = await pkg.mergePackageJsonProps(component);\n return {\n packageJsonModification: data,\n };\n });\n }\n\n PackageJsonTransformer.registerPackageJsonTransformer(pkg.transformPackageJson.bind(pkg));\n // TODO: consider passing the pkg instead of packer\n cli.register(new PackCmd(packer), new PublishCmd(publisher));\n return pkg;\n }\n\n readonly shouldPreserveConfigForClonedComponent = false;\n\n /**\n * get the package name of a component.\n */\n getPackageName(component: Component) {\n return this.dependencyResolver.getPackageName(component);\n }\n\n /*\n * Returns the location where the component is installed with its peer dependencies\n * This is used in cases you want to actually run the components and make sure all the dependencies (especially peers) are resolved correctly\n */\n getRuntimeModulePath(component: Component, options: GetModulePathOptions = {}) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component);\n if (options?.absPath) {\n if (this.workspace) {\n return join(this.workspace.path, relativePath);\n }\n throw new Error('getModulePath with abs path option is not implemented for scope');\n }\n return relativePath;\n }\n\n /**\n * returns the package path in the /node_modules/ folder\n * In case you call this in order to run the code from the path, please refer to the `getRuntimeModulePath` API\n */\n getModulePath(component: Component, options: GetModulePathOptions = {}) {\n const relativePath = this.dependencyResolver.getModulePath(component);\n if (options?.absPath) {\n if (this.workspace) {\n return join(this.workspace.path, relativePath);\n }\n throw new Error('getModulePath with abs path option is not implemented for scope');\n }\n return relativePath;\n }\n\n isModulePathExists(component: Component): boolean {\n const packageDir = this.getModulePath(component, { absPath: true });\n return fs.existsSync(packageDir);\n }\n\n async addMissingLinksFromNodeModulesIssue(component: Component) {\n const exist = this.isModulePathExists(component);\n if (!exist) {\n component.state.issues.getOrCreate(IssuesClasses.MissingLinksFromNodeModulesToSrc).data = true;\n }\n // we don't want to add any data to the compiler aspect, only to add issues on the component\n return undefined;\n }\n\n private manifestCache: InMemoryCache<{ head: string; manifest: VersionPackageManifest[] }>; // cache components manifests\n constructor(\n /**\n * logger extension\n */\n readonly logger: Logger,\n /**\n * pkg extension configuration.\n */\n readonly config: PkgExtensionConfig,\n\n /**\n * Registry for changes by other extensions.\n */\n private packageJsonPropsRegistry: PackageJsonPropsRegistry,\n\n private workspace: Workspace,\n private scope: ScopeMain,\n\n private builder: BuilderMain,\n /**\n * A utils class to packing components into tarball\n */\n private packer: Packer,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n /**\n * keep it as public. external env might want to register it to the snap pipeline\n */\n public publishTask: PublishTask,\n\n private dependencyResolver: DependencyResolverMain\n ) {\n this.manifestCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n /**\n * register changes in the package.json\n */\n registerPackageJsonNewProps(props: PackageJsonProps): void {\n return this.packageJsonPropsRegistry.register(props);\n }\n\n /**\n * Pack a component and generate a tarball suitable for npm registry\n *\n * @param {string} componentId\n * @param {(string | undefined)} scopePath\n * @param {string} outDir\n * @param {boolean} [prefix=false]\n * @param {boolean} [override=false]\n * @param {boolean} [keep=false]\n * @returns {Promise<PackResult>}\n * @memberof PkgExtension\n */\n async packComponent(componentId: string, scopePath: string | undefined, options: PackOptions): Promise<PackResult> {\n return this.packer.packComponent(componentId, scopePath, options);\n }\n\n /**\n * Merge the configs provided by:\n * 1. envs configured in the component - via getPackageJsonProps method\n * 2. extensions that registered to the registerPackageJsonNewProps slot (and configured for the component)\n * 3. props defined by the user (they are the strongest one)\n */\n async mergePackageJsonProps(component: Component): Promise<PackageJsonProps> {\n let newProps: PackageJsonProps = {};\n const mergeToNewProps = (otherProps: PackageJsonProps) => {\n const files = [...(newProps.files || []), ...(otherProps.files || [])];\n const merged = { ...newProps, ...otherProps };\n if (files.length) merged.files = files;\n return merged;\n };\n const env = this.envs.calculateEnv(component)?.env;\n if (env?.getPackageJsonProps && typeof env.getPackageJsonProps === 'function') {\n const propsFromEnv = env.getPackageJsonProps();\n newProps = mergeToNewProps(propsFromEnv);\n }\n\n const configuredIds = component.state.aspects.ids;\n configuredIds.forEach((extId) => {\n // Only get props from configured extensions on this specific component\n const props = this.packageJsonPropsRegistry.get(extId);\n if (props) {\n newProps = mergeToNewProps(props);\n }\n });\n\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n const currentConfig = currentExtension?.config as unknown as ComponentPkgExtensionConfig;\n if (currentConfig && currentConfig.packageJson) {\n newProps = mergeToNewProps(currentConfig.packageJson);\n }\n // Keys not allowed to override\n const specialKeys = ['extensions', 'dependencies', 'devDependencies', 'peerDependencies'];\n return omit(newProps, specialKeys);\n }\n\n getPackageJsonModifications(component: Component): Record<string, any> {\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n const currentData = currentExtension?.data as unknown as ComponentPkgExtensionData;\n return currentData?.packageJsonModification ?? {};\n }\n\n async getPkgArtifact(component: Component): Promise<PkgArtifact> {\n const artifacts = await this.builder.getArtifactsVinylByAspect(component, PkgAspect.id);\n if (!artifacts.length) throw new PkgArtifactNotFound(component.id);\n\n return new PkgArtifact(artifacts);\n }\n\n async getManifest(component: Component): Promise<ComponentPackageManifest> {\n const name = this.getPackageName(component);\n const latestVersion = component.latest;\n if (!latestVersion) {\n throw new BitError('can not get manifest for component without versions');\n }\n const preReleaseLatestTags = component.tags.getPreReleaseLatestTags();\n const latest = snapToSemver(latestVersion);\n const distTags = {\n latest,\n ...preReleaseLatestTags,\n };\n const versionsFromCache = this.manifestCache.get(name);\n const getVersions = async (): Promise<VersionPackageManifest[]> => {\n const headHash = component.head?.hash;\n if (!headHash) throw new BitError(`unable to get manifest for \"${name}\", the head is empty`);\n if (versionsFromCache) {\n if (versionsFromCache.head !== headHash) this.manifestCache.delete(name);\n else {\n return versionsFromCache.manifest;\n }\n }\n const versions = await this.getAllSnapsManifests(component);\n const versionsWithoutEmpty = compact(versions);\n this.manifestCache.set(name, { head: headHash, manifest: versionsWithoutEmpty });\n return versionsWithoutEmpty;\n };\n\n const versions = await getVersions();\n const externalRegistry = this.isPublishedToExternalRegistry(component);\n return {\n name,\n distTags,\n externalRegistry,\n versions,\n };\n }\n\n private async getAllSnapsManifests(component: Component): Promise<VersionPackageManifest[]> {\n const iterable = component.snapsIterable();\n const result: VersionPackageManifest[] = [];\n for await (const snap of iterable) {\n const manifest = await this.getSnapManifest(component, snap);\n if (manifest) {\n result.push(manifest);\n }\n }\n return result;\n }\n\n /**\n * Check if the component should be fetched from bit registry or from another registry\n * This will usually determined by the latest version of the component\n * @param component\n */\n isPublishedToExternalRegistry(component: IComponent): boolean {\n const pkgExt = component.get(PkgAspect.id);\n // By default publish to bit registry\n if (!pkgExt) return false;\n return !!(pkgExt.config?.packageJson?.name || pkgExt.config?.packageJson?.publishConfig);\n }\n\n private getComponentBuildData(component: Component): ComponentPkgExtensionData | undefined {\n const data = this.builder.getDataByAspect(component, PkgAspect.id);\n if (data) return data as ComponentPkgExtensionData;\n // backward compatibility. the data used to be saved on the pkg aspect rather than on the\n // builder aspect\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n return currentExtension?.data as ComponentPkgExtensionData | undefined;\n }\n\n async getSnapManifest(component: Component, snap: Snap): Promise<VersionPackageManifest | undefined> {\n const idWithCorrectVersion = component.id.changeVersion(snap.hash);\n\n // @todo: this is a hack. see below the right way to do it.\n const version = await this.scope.legacyScope.getVersionInstance(idWithCorrectVersion._legacy);\n const builderData = version.extensions.findCoreExtension(BuilderAspect.id)?.data?.aspectsData;\n const currentData = builderData?.find((a) => a.aspectId === PkgAspect.id)?.data;\n\n // @todo: this is the proper way to communicate with the builder aspect. however, getting\n // the entire Component for each one of the snaps is terrible in terms of the performance.\n\n // const updatedComponent = await this.componentAspect.getHost().get(idWithCorrectVersion, true);\n // if (!updatedComponent) {\n // throw new BitError(`snap ${snap.hash} for component ${component.id.toString()} is missing`);\n // }\n // const currentData = this.getComponentBuildData(updatedComponent);\n\n // If for some reason the version has no package.json manifest, return undefined\n if (!currentData?.pkgJson) {\n return undefined;\n }\n const pkgJson = currentData?.pkgJson ?? {};\n const checksum = currentData?.checksum;\n if (!checksum) {\n this.logger.error(`checksum for ${component.id.toString()} is missing`);\n return undefined;\n }\n const dist = {\n shasum: checksum,\n tarball: this.componentAspect.getRoute(idWithCorrectVersion, routePath),\n };\n\n const manifest = {\n ...pkgJson,\n dist,\n };\n return manifest;\n }\n\n async getPackageTarFile(component: Component): Promise<AbstractVinyl> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PkgAspect.id,\n TAR_FILE_ARTIFACT_NAME\n );\n if (!artifacts.length) throw new PackageTarFiletNotFound(component.id);\n\n return artifacts[0];\n }\n\n async transformPackageJson(\n legacyComponent: LegacyComponent,\n packageJsonObject: Record<string, any>\n ): Promise<Record<string, any>> {\n // const newId = await this.workspace.resolveComponentId(component.id);\n // const newComponent = await this.workspace.get(newId);\n const host = this.componentAspect.getHost();\n const id = await host.resolveComponentId(legacyComponent.id);\n const newComponent = await host.get(id);\n if (!newComponent) throw new Error(`cannot transform package.json of component: ${legacyComponent.id.toString()}`);\n const newProps = this.getPackageJsonModifications(newComponent);\n return Object.assign(packageJsonObject, newProps);\n }\n}\n\nPkgAspect.addRuntime(PkgMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;A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"}
|
|
1
|
+
{"version":3,"names":["PkgMain","provider","cli","scope","envs","isolator","logger","workspace","builder","dependencyResolver","componentAspect","graphql","config","packageJsonPropsRegistry","logPublisher","createLogger","PkgAspect","id","host","getHost","packer","Packer","publisher","Publisher","legacyScope","publishTask","PublishTask","packTask","PackTask","pkg","registerShowFragments","PackageFragment","registerDependencyFactories","PackageDependencyFactory","register","pkgSchema","registerService","PkgService","registerRoute","PackageRoute","preparePackagesTask","PreparePackagesTask","registerBuildTasks","registerTagTasks","registerSnapTasks","onComponentLoad","component","addMissingLinksFromNodeModulesIssue","data","mergePackageJsonProps","packageJsonModification","PackageJsonTransformer","registerPackageJsonTransformer","transformPackageJson","bind","PackCmd","PublishCmd","getPackageName","getRuntimeModulePath","options","relativePath","absPath","join","path","Error","getModulePath","isModulePathExists","packageDir","fs","existsSync","exist","state","issues","getOrCreate","IssuesClasses","MissingLinksFromNodeModulesToSrc","undefined","constructor","manifestCache","createInMemoryCache","maxSize","getMaxSizeForComponents","registerPackageJsonNewProps","props","packComponent","componentId","scopePath","newProps","mergeToNewProps","otherProps","files","merged","length","env","calculateEnv","getPackageJsonProps","propsFromEnv","configuredIds","aspects","ids","forEach","extId","get","currentExtension","currentConfig","packageJson","specialKeys","omit","getPackageJsonModifications","currentData","getPkgArtifact","artifacts","getArtifactsVinylByAspect","PkgArtifactNotFound","PkgArtifact","getManifest","name","latestVersion","latest","BitError","preReleaseLatestTags","tags","getPreReleaseLatestTags","snapToSemver","distTags","versionsFromCache","getVersions","headHash","head","hash","delete","manifest","versions","getAllSnapsManifests","versionsWithoutEmpty","compact","set","externalRegistry","isPublishedToExternalRegistry","iterable","snapsIterable","result","snap","getSnapManifest","push","pkgExt","publishConfig","getComponentBuildData","getDataByAspect","idWithCorrectVersion","changeVersion","version","getVersionInstance","_legacy","builderData","extensions","findCoreExtension","BuilderAspect","aspectsData","find","a","aspectId","pkgJson","checksum","error","toString","dist","shasum","tarball","getRoute","routePath","getPackageTarFile","getArtifactsVinylByAspectAndName","TAR_FILE_ARTIFACT_NAME","PackageTarFiletNotFound","legacyComponent","packageJsonObject","resolveComponentId","newComponent","Object","assign","MainRuntime","CLIAspect","ScopeAspect","EnvsAspect","IsolatorAspect","LoggerAspect","WorkspaceAspect","DependencyResolverAspect","ComponentAspect","GraphqlAspect","Slot","withType","addRuntime"],"sources":["pkg.main.runtime.ts"],"sourcesContent":["import { compact, omit } from 'lodash';\nimport { join } from 'path';\nimport fs from 'fs-extra';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain, IComponent, Snap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { PackageJsonTransformer } from '@teambit/legacy/dist/consumer/component/package-json-transformer';\nimport LegacyComponent from '@teambit/legacy/dist/consumer/component';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { CloneConfig } from '@teambit/new-component-helper';\nimport { BitError } from '@teambit/bit-error';\nimport { snapToSemver } from '@teambit/component-package-version';\nimport { IssuesClasses } from '@teambit/component-issues';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { GraphqlMain, GraphqlAspect } from '@teambit/graphql';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\nimport { getMaxSizeForComponents, InMemoryCache } from '@teambit/legacy/dist/cache/in-memory-cache';\nimport { createInMemoryCache } from '@teambit/legacy/dist/cache/cache-factory';\nimport { Packer, PackOptions, PackResult, TAR_FILE_ARTIFACT_NAME } from './packer';\n// import { BitCli as CLI, BitCliExt as CLIExtension } from '@teambit/cli';\nimport { PackCmd } from './pack.cmd';\nimport { PkgAspect } from './pkg.aspect';\nimport { PreparePackagesTask } from './prepare-packages.task';\nimport { PublishCmd } from './publish.cmd';\nimport { Publisher } from './publisher';\nimport { PublishTask } from './publish.task';\nimport { PackageTarFiletNotFound, PkgArtifactNotFound } from './exceptions';\nimport { PkgArtifact } from './pkg-artifact';\nimport { PackageRoute, routePath } from './package.route';\nimport { PackageDependencyFactory } from './package-dependency';\nimport { pkgSchema } from './pkg.graphql';\nimport { PackageFragment } from './package.fragment';\nimport { PackTask } from './pack.task';\nimport { PkgService } from './pkg.service';\n\nexport interface PackageJsonProps {\n [key: string]: any;\n}\n\nexport type PackageJsonPropsRegistry = SlotRegistry<PackageJsonProps>;\n\nexport type PkgExtensionConfig = {};\n\ntype GetModulePathOptions = { absPath?: boolean };\n\n/**\n * Config for variants\n */\nexport type ComponentPkgExtensionConfig = {\n /**\n * properties to add to the package.json of the component.\n */\n packageJson: Record<string, any>;\n};\n\n/**\n * Data stored in the component\n */\nexport type ComponentPkgExtensionData = {\n /**\n * properties to add to the package.json of the component.\n */\n packageJsonModification: Record<string, any>;\n\n /**\n * Final package.json after creating tar file\n */\n pkgJson?: Record<string, any>;\n\n /**\n * Checksum of the tar file\n */\n checksum?: string;\n};\n\nexport type ComponentPackageManifest = {\n name: string;\n distTags: Record<string, string>;\n externalRegistry: boolean;\n versions: VersionPackageManifest[];\n};\n\nexport type VersionPackageManifest = {\n [key: string]: any;\n dist: {\n tarball: string;\n shasum: string;\n };\n};\n\nexport class PkgMain implements CloneConfig {\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n ScopeAspect,\n EnvsAspect,\n IsolatorAspect,\n LoggerAspect,\n WorkspaceAspect,\n BuilderAspect,\n DependencyResolverAspect,\n ComponentAspect,\n GraphqlAspect,\n ];\n static slots = [Slot.withType<PackageJsonProps>()];\n static defaultConfig = {};\n\n static async provider(\n [cli, scope, envs, isolator, logger, workspace, builder, dependencyResolver, componentAspect, graphql]: [\n CLIMain,\n ScopeMain,\n EnvsMain,\n IsolatorMain,\n LoggerMain,\n Workspace,\n BuilderMain,\n DependencyResolverMain,\n ComponentMain,\n GraphqlMain\n ],\n config: PkgExtensionConfig,\n [packageJsonPropsRegistry]: [PackageJsonPropsRegistry]\n ) {\n const logPublisher = logger.createLogger(PkgAspect.id);\n const host = componentAspect.getHost();\n const packer = new Packer(isolator, logPublisher, host, scope);\n const publisher = new Publisher(isolator, logPublisher, scope?.legacyScope, workspace);\n const publishTask = new PublishTask(PkgAspect.id, publisher, logPublisher);\n const packTask = new PackTask(PkgAspect.id, packer, logPublisher);\n const pkg = new PkgMain(\n logPublisher,\n config,\n packageJsonPropsRegistry,\n workspace,\n scope,\n builder,\n packer,\n envs,\n componentAspect,\n publishTask,\n dependencyResolver\n );\n\n componentAspect.registerShowFragments([new PackageFragment(pkg)]);\n dependencyResolver.registerDependencyFactories([new PackageDependencyFactory()]);\n\n graphql.register(pkgSchema(pkg));\n envs.registerService(new PkgService());\n\n componentAspect.registerRoute([new PackageRoute(pkg)]);\n\n // we ended up not using the publish-dry-run task. It used to run \"npm publish --dry-run\"\n // and also \"npm pack --dry-run\", but it's not that useful and it takes long to complete.\n // we might revise our decision later.\n // const dryRunTask = new PublishDryRunTask(PkgAspect.id, publisher, packer, logPublisher);\n const preparePackagesTask = new PreparePackagesTask(PkgAspect.id, logPublisher, envs);\n // dryRunTask.dependencies = [BuildTaskHelper.serializeId(preparePackagesTask)];\n builder.registerBuildTasks([preparePackagesTask]);\n builder.registerTagTasks([packTask, publishTask]);\n builder.registerSnapTasks([packTask]);\n if (workspace) {\n // workspace.onComponentLoad(pkg.mergePackageJsonProps.bind(pkg));\n workspace.onComponentLoad(async (component) => {\n await pkg.addMissingLinksFromNodeModulesIssue(component);\n const data = await pkg.mergePackageJsonProps(component);\n return {\n packageJsonModification: data,\n };\n });\n }\n\n PackageJsonTransformer.registerPackageJsonTransformer(pkg.transformPackageJson.bind(pkg));\n // TODO: consider passing the pkg instead of packer\n cli.register(new PackCmd(packer), new PublishCmd(publisher));\n return pkg;\n }\n\n readonly shouldPreserveConfigForClonedComponent = false;\n\n /**\n * get the package name of a component.\n */\n getPackageName(component: Component) {\n return this.dependencyResolver.getPackageName(component);\n }\n\n /*\n * Returns the location where the component is installed with its peer dependencies\n * This is used in cases you want to actually run the components and make sure all the dependencies (especially peers) are resolved correctly\n */\n getRuntimeModulePath(component: Component, options: GetModulePathOptions = {}) {\n const relativePath = this.dependencyResolver.getRuntimeModulePath(component);\n if (options?.absPath) {\n if (this.workspace) {\n return join(this.workspace.path, relativePath);\n }\n throw new Error('getModulePath with abs path option is not implemented for scope');\n }\n return relativePath;\n }\n\n /**\n * returns the package path in the /node_modules/ folder\n * In case you call this in order to run the code from the path, please refer to the `getRuntimeModulePath` API\n */\n getModulePath(component: Component, options: GetModulePathOptions = {}) {\n const relativePath = this.dependencyResolver.getModulePath(component);\n if (options?.absPath) {\n if (this.workspace) {\n return join(this.workspace.path, relativePath);\n }\n throw new Error('getModulePath with abs path option is not implemented for scope');\n }\n return relativePath;\n }\n\n isModulePathExists(component: Component): boolean {\n const packageDir = this.getModulePath(component, { absPath: true });\n return fs.existsSync(packageDir);\n }\n\n async addMissingLinksFromNodeModulesIssue(component: Component) {\n const exist = this.isModulePathExists(component);\n if (!exist) {\n component.state.issues.getOrCreate(IssuesClasses.MissingLinksFromNodeModulesToSrc).data = true;\n }\n // we don't want to add any data to the compiler aspect, only to add issues on the component\n return undefined;\n }\n\n private manifestCache: InMemoryCache<{ head: string; manifest: VersionPackageManifest[] }>; // cache components manifests\n constructor(\n /**\n * logger extension\n */\n readonly logger: Logger,\n /**\n * pkg extension configuration.\n */\n readonly config: PkgExtensionConfig,\n\n /**\n * Registry for changes by other extensions.\n */\n private packageJsonPropsRegistry: PackageJsonPropsRegistry,\n\n private workspace: Workspace,\n private scope: ScopeMain,\n\n private builder: BuilderMain,\n /**\n * A utils class to packing components into tarball\n */\n private packer: Packer,\n\n /**\n * envs extension.\n */\n private envs: EnvsMain,\n\n private componentAspect: ComponentMain,\n\n /**\n * keep it as public. external env might want to register it to the snap pipeline\n */\n public publishTask: PublishTask,\n\n private dependencyResolver: DependencyResolverMain\n ) {\n this.manifestCache = createInMemoryCache({ maxSize: getMaxSizeForComponents() });\n }\n\n /**\n * register changes in the package.json\n */\n registerPackageJsonNewProps(props: PackageJsonProps): void {\n return this.packageJsonPropsRegistry.register(props);\n }\n\n /**\n * Pack a component and generate a tarball suitable for npm registry\n *\n * @param {string} componentId\n * @param {(string | undefined)} scopePath\n * @param {string} outDir\n * @param {boolean} [prefix=false]\n * @param {boolean} [override=false]\n * @param {boolean} [keep=false]\n * @returns {Promise<PackResult>}\n * @memberof PkgExtension\n */\n async packComponent(componentId: string, scopePath: string | undefined, options: PackOptions): Promise<PackResult> {\n return this.packer.packComponent(componentId, scopePath, options);\n }\n\n /**\n * Merge the configs provided by:\n * 1. envs configured in the component - via getPackageJsonProps method\n * 2. extensions that registered to the registerPackageJsonNewProps slot (and configured for the component)\n * 3. props defined by the user (they are the strongest one)\n */\n async mergePackageJsonProps(component: Component): Promise<PackageJsonProps> {\n let newProps: PackageJsonProps = {};\n const mergeToNewProps = (otherProps: PackageJsonProps) => {\n const files = [...(newProps.files || []), ...(otherProps.files || [])];\n const merged = { ...newProps, ...otherProps };\n if (files.length) merged.files = files;\n return merged;\n };\n const env = this.envs.calculateEnv(component)?.env;\n if (env?.getPackageJsonProps && typeof env.getPackageJsonProps === 'function') {\n const propsFromEnv = env.getPackageJsonProps();\n newProps = mergeToNewProps(propsFromEnv);\n }\n\n const configuredIds = component.state.aspects.ids;\n configuredIds.forEach((extId) => {\n // Only get props from configured extensions on this specific component\n const props = this.packageJsonPropsRegistry.get(extId);\n if (props) {\n newProps = mergeToNewProps(props);\n }\n });\n\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n const currentConfig = currentExtension?.config as unknown as ComponentPkgExtensionConfig;\n if (currentConfig && currentConfig.packageJson) {\n newProps = mergeToNewProps(currentConfig.packageJson);\n }\n // Keys not allowed to override\n const specialKeys = ['extensions', 'dependencies', 'devDependencies', 'peerDependencies'];\n return omit(newProps, specialKeys);\n }\n\n getPackageJsonModifications(component: Component): Record<string, any> {\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n const currentData = currentExtension?.data as unknown as ComponentPkgExtensionData;\n return currentData?.packageJsonModification ?? {};\n }\n\n async getPkgArtifact(component: Component): Promise<PkgArtifact> {\n const artifacts = await this.builder.getArtifactsVinylByAspect(component, PkgAspect.id);\n if (!artifacts.length) throw new PkgArtifactNotFound(component.id);\n\n return new PkgArtifact(artifacts);\n }\n\n async getManifest(component: Component): Promise<ComponentPackageManifest> {\n const name = this.getPackageName(component);\n const latestVersion = component.latest;\n if (!latestVersion) {\n throw new BitError('can not get manifest for component without versions');\n }\n const preReleaseLatestTags = component.tags.getPreReleaseLatestTags();\n const latest = snapToSemver(latestVersion);\n const distTags = {\n latest,\n ...preReleaseLatestTags,\n };\n const versionsFromCache = this.manifestCache.get(name);\n const getVersions = async (): Promise<VersionPackageManifest[]> => {\n const headHash = component.head?.hash;\n if (!headHash) throw new BitError(`unable to get manifest for \"${name}\", the head is empty`);\n if (versionsFromCache) {\n if (versionsFromCache.head !== headHash) this.manifestCache.delete(name);\n else {\n return versionsFromCache.manifest;\n }\n }\n const versions = await this.getAllSnapsManifests(component);\n const versionsWithoutEmpty = compact(versions);\n this.manifestCache.set(name, { head: headHash, manifest: versionsWithoutEmpty });\n return versionsWithoutEmpty;\n };\n\n const versions = await getVersions();\n const externalRegistry = this.isPublishedToExternalRegistry(component);\n return {\n name,\n distTags,\n externalRegistry,\n versions,\n };\n }\n\n private async getAllSnapsManifests(component: Component): Promise<VersionPackageManifest[]> {\n const iterable = component.snapsIterable();\n const result: VersionPackageManifest[] = [];\n for await (const snap of iterable) {\n const manifest = await this.getSnapManifest(component, snap);\n if (manifest) {\n result.push(manifest);\n }\n }\n return result;\n }\n\n /**\n * Check if the component should be fetched from bit registry or from another registry\n * This will usually determined by the latest version of the component\n * @param component\n */\n isPublishedToExternalRegistry(component: IComponent): boolean {\n const pkgExt = component.get(PkgAspect.id);\n // By default publish to bit registry\n if (!pkgExt) return false;\n return !!(pkgExt.config?.packageJson?.name || pkgExt.config?.packageJson?.publishConfig);\n }\n\n private getComponentBuildData(component: Component): ComponentPkgExtensionData | undefined {\n const data = this.builder.getDataByAspect(component, PkgAspect.id);\n if (data) return data as ComponentPkgExtensionData;\n // backward compatibility. the data used to be saved on the pkg aspect rather than on the\n // builder aspect\n const currentExtension = component.state.aspects.get(PkgAspect.id);\n return currentExtension?.data as ComponentPkgExtensionData | undefined;\n }\n\n async getSnapManifest(component: Component, snap: Snap): Promise<VersionPackageManifest | undefined> {\n const idWithCorrectVersion = component.id.changeVersion(snap.hash);\n\n // @todo: this is a hack. see below the right way to do it.\n const version = await this.scope.legacyScope.getVersionInstance(idWithCorrectVersion._legacy);\n const builderData = version.extensions.findCoreExtension(BuilderAspect.id)?.data?.aspectsData;\n const currentData = builderData?.find((a) => a.aspectId === PkgAspect.id)?.data;\n\n // @todo: this is the proper way to communicate with the builder aspect. however, getting\n // the entire Component for each one of the snaps is terrible in terms of the performance.\n\n // const updatedComponent = await this.componentAspect.getHost().get(idWithCorrectVersion, true);\n // if (!updatedComponent) {\n // throw new BitError(`snap ${snap.hash} for component ${component.id.toString()} is missing`);\n // }\n // const currentData = this.getComponentBuildData(updatedComponent);\n\n // If for some reason the version has no package.json manifest, return undefined\n if (!currentData?.pkgJson) {\n return undefined;\n }\n const pkgJson = currentData?.pkgJson ?? {};\n const checksum = currentData?.checksum;\n if (!checksum) {\n this.logger.error(`checksum for ${component.id.toString()} is missing`);\n return undefined;\n }\n const dist = {\n shasum: checksum,\n tarball: this.componentAspect.getRoute(idWithCorrectVersion, routePath),\n };\n\n const manifest = {\n ...pkgJson,\n dist,\n };\n return manifest;\n }\n\n async getPackageTarFile(component: Component): Promise<AbstractVinyl> {\n const artifacts = await this.builder.getArtifactsVinylByAspectAndName(\n component,\n PkgAspect.id,\n TAR_FILE_ARTIFACT_NAME\n );\n if (!artifacts.length) throw new PackageTarFiletNotFound(component.id);\n\n return artifacts[0];\n }\n\n async transformPackageJson(\n legacyComponent: LegacyComponent,\n packageJsonObject: Record<string, any>\n ): Promise<Record<string, any>> {\n // const newId = await this.workspace.resolveComponentId(component.id);\n // const newComponent = await this.workspace.get(newId);\n const host = this.componentAspect.getHost();\n const id = await host.resolveComponentId(legacyComponent.id);\n const newComponent = await host.get(id);\n if (!newComponent) throw new Error(`cannot transform package.json of component: ${legacyComponent.id.toString()}`);\n const newProps = this.getPackageJsonModifications(newComponent);\n return Object.assign(packageJsonObject, newProps);\n }\n}\n\nPkgAspect.addRuntime(PkgMain);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EA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"}
|
package/dist/pkg.service.js
CHANGED
|
@@ -1,59 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.promise.js");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.PkgService = void 0;
|
|
11
|
-
|
|
12
9
|
function _defineProperty2() {
|
|
13
10
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
|
|
15
11
|
_defineProperty2 = function () {
|
|
16
12
|
return data;
|
|
17
13
|
};
|
|
18
|
-
|
|
19
14
|
return data;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
function _react() {
|
|
23
17
|
const data = _interopRequireDefault(require("react"));
|
|
24
|
-
|
|
25
18
|
_react = function () {
|
|
26
19
|
return data;
|
|
27
20
|
};
|
|
28
|
-
|
|
29
21
|
return data;
|
|
30
22
|
}
|
|
31
|
-
|
|
32
23
|
function _ink() {
|
|
33
24
|
const data = require("ink");
|
|
34
|
-
|
|
35
25
|
_ink = function () {
|
|
36
26
|
return data;
|
|
37
27
|
};
|
|
38
|
-
|
|
39
28
|
return data;
|
|
40
29
|
}
|
|
41
|
-
|
|
42
30
|
function _cliHighlight() {
|
|
43
31
|
const data = _interopRequireDefault(require("cli-highlight"));
|
|
44
|
-
|
|
45
32
|
_cliHighlight = function () {
|
|
46
33
|
return data;
|
|
47
34
|
};
|
|
48
|
-
|
|
49
35
|
return data;
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
class PkgService {
|
|
53
38
|
constructor() {
|
|
54
39
|
(0, _defineProperty2().default)(this, "name", 'Pkg');
|
|
55
40
|
}
|
|
56
|
-
|
|
57
41
|
async render(env) {
|
|
58
42
|
const descriptor = this.getDescriptor(env);
|
|
59
43
|
return /*#__PURE__*/_react().default.createElement(_ink().Text, {
|
|
@@ -65,7 +49,6 @@ class PkgService {
|
|
|
65
49
|
ignoreIllegals: true
|
|
66
50
|
})), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
|
|
67
51
|
}
|
|
68
|
-
|
|
69
52
|
getDescriptor(env) {
|
|
70
53
|
if (!env.env.getPackageJsonProps) return undefined;
|
|
71
54
|
const props = env.env.getPackageJsonProps();
|
|
@@ -75,9 +58,7 @@ class PkgService {
|
|
|
75
58
|
displayName: this.name
|
|
76
59
|
};
|
|
77
60
|
}
|
|
78
|
-
|
|
79
61
|
}
|
|
80
|
-
|
|
81
62
|
exports.PkgService = PkgService;
|
|
82
63
|
|
|
83
64
|
//# sourceMappingURL=pkg.service.js.map
|
package/dist/pkg.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PkgService","render","env","descriptor","getDescriptor","id","config","highlight","language","ignoreIllegals","getPackageJsonProps","undefined","props","name","JSON","stringify","displayName"],"sources":["pkg.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, EnvDefinition } from '@teambit/envs';\nimport highlight from 'cli-highlight';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\nexport class PkgService implements EnvService<{}, PkgDescriptor> {\n name = 'Pkg';\n\n async render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured package.json properties: </Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition): PkgDescriptor | undefined {\n if (!env.env.getPackageJsonProps) return undefined;\n const props = env.env.getPackageJsonProps();\n return {\n id: this.name,\n config: props ? JSON.stringify(props, null, 2) : undefined,\n displayName: this.name,\n };\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["PkgService","render","env","descriptor","getDescriptor","id","config","highlight","language","ignoreIllegals","getPackageJsonProps","undefined","props","name","JSON","stringify","displayName"],"sources":["pkg.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport { EnvService, EnvDefinition } from '@teambit/envs';\nimport highlight from 'cli-highlight';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\nexport class PkgService implements EnvService<{}, PkgDescriptor> {\n name = 'Pkg';\n\n async render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured package.json properties: </Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition): PkgDescriptor | undefined {\n if (!env.env.getPackageJsonProps) return undefined;\n const props = env.env.getPackageJsonProps();\n return {\n id: this.name,\n config: props ? JSON.stringify(props, null, 2) : undefined,\n displayName: this.name,\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQO,MAAMA,UAAU,CAA0C;EAAA;IAAA,8CACxD,KAAK;EAAA;EAEZ,MAAMC,MAAM,CAACC,GAAkB,EAAE;IAC/B,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;IAE1C,oBACE,+BAAC,WAAI;MAAC,GAAG,EAAEC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE;IAAG,gBACxB,+BAAC,WAAI;MAAC,KAAK,EAAC;IAAM,0CAA4C,eAC9D,+BAAC,cAAO,OAAG,eACX,+BAAC,WAAI,QACF,CAAAF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEG,MAAM,KAAI,IAAAC,uBAAS,EAACJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEG,MAAM,EAAE;MAAEE,QAAQ,EAAE,YAAY;MAAEC,cAAc,EAAE;IAAK,CAAC,CAAC,CACjG,eACP,+BAAC,cAAO,OAAG,CACN;EAEX;EAEAL,aAAa,CAACF,GAAkB,EAA6B;IAC3D,IAAI,CAACA,GAAG,CAACA,GAAG,CAACQ,mBAAmB,EAAE,OAAOC,SAAS;IAClD,MAAMC,KAAK,GAAGV,GAAG,CAACA,GAAG,CAACQ,mBAAmB,EAAE;IAC3C,OAAO;MACLL,EAAE,EAAE,IAAI,CAACQ,IAAI;MACbP,MAAM,EAAEM,KAAK,GAAGE,IAAI,CAACC,SAAS,CAACH,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAGD,SAAS;MAC1DK,WAAW,EAAE,IAAI,CAACH;IACpB,CAAC;EACH;AACF;AAAC"}
|
package/dist/pkg.ui.runtime.js
CHANGED
|
@@ -1,78 +1,55 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.promise.js");
|
|
8
|
-
|
|
9
6
|
require("core-js/modules/es.regexp.exec.js");
|
|
10
|
-
|
|
11
7
|
Object.defineProperty(exports, "__esModule", {
|
|
12
8
|
value: true
|
|
13
9
|
});
|
|
14
10
|
exports.default = exports.PkgUI = void 0;
|
|
15
|
-
|
|
16
11
|
function _defineProperty2() {
|
|
17
12
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
18
|
-
|
|
19
13
|
_defineProperty2 = function () {
|
|
20
14
|
return data;
|
|
21
15
|
};
|
|
22
|
-
|
|
23
16
|
return data;
|
|
24
17
|
}
|
|
25
|
-
|
|
26
18
|
function _react() {
|
|
27
19
|
const data = _interopRequireDefault(require("react"));
|
|
28
|
-
|
|
29
20
|
_react = function () {
|
|
30
21
|
return data;
|
|
31
22
|
};
|
|
32
|
-
|
|
33
23
|
return data;
|
|
34
24
|
}
|
|
35
|
-
|
|
36
25
|
function _ui() {
|
|
37
26
|
const data = require("@teambit/ui");
|
|
38
|
-
|
|
39
27
|
_ui = function () {
|
|
40
28
|
return data;
|
|
41
29
|
};
|
|
42
|
-
|
|
43
30
|
return data;
|
|
44
31
|
}
|
|
45
|
-
|
|
46
32
|
function _uiFoundationUiUseBox() {
|
|
47
33
|
const data = require("@teambit/ui-foundation.ui.use-box.menu");
|
|
48
|
-
|
|
49
34
|
_uiFoundationUiUseBox = function () {
|
|
50
35
|
return data;
|
|
51
36
|
};
|
|
52
|
-
|
|
53
37
|
return data;
|
|
54
38
|
}
|
|
55
|
-
|
|
56
39
|
function _component() {
|
|
57
40
|
const data = _interopRequireDefault(require("@teambit/component"));
|
|
58
|
-
|
|
59
41
|
_component = function () {
|
|
60
42
|
return data;
|
|
61
43
|
};
|
|
62
|
-
|
|
63
44
|
return data;
|
|
64
45
|
}
|
|
65
|
-
|
|
66
46
|
function _pkg() {
|
|
67
47
|
const data = require("./pkg.aspect");
|
|
68
|
-
|
|
69
48
|
_pkg = function () {
|
|
70
49
|
return data;
|
|
71
50
|
};
|
|
72
|
-
|
|
73
51
|
return data;
|
|
74
52
|
}
|
|
75
|
-
|
|
76
53
|
class PkgUI {
|
|
77
54
|
constructor() {
|
|
78
55
|
(0, _defineProperty2().default)(this, "npmConsumeMethod", (comp, options) => {
|
|
@@ -97,21 +74,17 @@ class PkgUI {
|
|
|
97
74
|
};
|
|
98
75
|
});
|
|
99
76
|
}
|
|
100
|
-
|
|
101
77
|
static async provider([componentUI]) {
|
|
102
78
|
const pkg = new PkgUI();
|
|
103
79
|
componentUI.registerConsumeMethod(pkg.npmConsumeMethod);
|
|
104
80
|
return pkg;
|
|
105
81
|
}
|
|
106
|
-
|
|
107
82
|
}
|
|
108
|
-
|
|
109
83
|
exports.PkgUI = PkgUI;
|
|
110
84
|
(0, _defineProperty2().default)(PkgUI, "runtime", _ui().UIRuntime);
|
|
111
85
|
(0, _defineProperty2().default)(PkgUI, "dependencies", [_component().default]);
|
|
112
86
|
var _default = PkgUI;
|
|
113
87
|
exports.default = _default;
|
|
114
|
-
|
|
115
88
|
_pkg().PkgAspect.addRuntime(PkgUI);
|
|
116
89
|
|
|
117
90
|
//# sourceMappingURL=pkg.ui.runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PkgUI","comp","options","currentLane","undefined","registry","packageName","split","packageVersion","version","latest","Title","width","Component","id","name","order","provider","componentUI","pkg","registerConsumeMethod","npmConsumeMethod","UIRuntime","ComponentAspect","PkgAspect","addRuntime"],"sources":["pkg.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { Install } from '@teambit/ui-foundation.ui.use-box.menu';\nimport ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';\nimport { PkgAspect } from './pkg.aspect';\n\nexport class PkgUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const pkg = new PkgUI();\n componentUI.registerConsumeMethod(pkg.npmConsumeMethod);\n return pkg;\n }\n\n private npmConsumeMethod: ConsumePlugin = (comp, options) => {\n if (options?.currentLane) return undefined;\n\n const registry = comp.packageName.split('/')[0];\n const packageVersion = comp.version === comp.latest ? '' : `@${comp.version}`;\n return {\n Title: <img style={{ width: '30px' }} src=\"https://static.bit.dev/brands/logo-npm-new.svg\" />,\n Component: (\n <Install\n config={`npm config set '${registry}:registry' https://node.bit.cloud`}\n componentName={comp.id.name}\n packageManager=\"npm\"\n copyString={`npm i ${comp.packageName}${packageVersion}`}\n registryName={registry}\n />\n ),\n order: 10,\n };\n };\n}\n\nexport default PkgUI;\n\nPkgAspect.addRuntime(PkgUI);\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["PkgUI","comp","options","currentLane","undefined","registry","packageName","split","packageVersion","version","latest","Title","width","Component","id","name","order","provider","componentUI","pkg","registerConsumeMethod","npmConsumeMethod","UIRuntime","ComponentAspect","PkgAspect","addRuntime"],"sources":["pkg.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { Install } from '@teambit/ui-foundation.ui.use-box.menu';\nimport ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';\nimport { PkgAspect } from './pkg.aspect';\n\nexport class PkgUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const pkg = new PkgUI();\n componentUI.registerConsumeMethod(pkg.npmConsumeMethod);\n return pkg;\n }\n\n private npmConsumeMethod: ConsumePlugin = (comp, options) => {\n if (options?.currentLane) return undefined;\n\n const registry = comp.packageName.split('/')[0];\n const packageVersion = comp.version === comp.latest ? '' : `@${comp.version}`;\n return {\n Title: <img style={{ width: '30px' }} src=\"https://static.bit.dev/brands/logo-npm-new.svg\" />,\n Component: (\n <Install\n config={`npm config set '${registry}:registry' https://node.bit.cloud`}\n componentName={comp.id.name}\n packageManager=\"npm\"\n copyString={`npm i ${comp.packageName}${packageVersion}`}\n registryName={registry}\n />\n ),\n order: 10,\n };\n };\n}\n\nexport default PkgUI;\n\nPkgAspect.addRuntime(PkgUI);\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,KAAK,CAAC;EAAA;IAAA,0DAWyB,CAACC,IAAI,EAAEC,OAAO,KAAK;MAC3D,IAAIA,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,WAAW,EAAE,OAAOC,SAAS;MAE1C,MAAMC,QAAQ,GAAGJ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAC/C,MAAMC,cAAc,GAAGP,IAAI,CAACQ,OAAO,KAAKR,IAAI,CAACS,MAAM,GAAG,EAAE,GAAI,IAAGT,IAAI,CAACQ,OAAQ,EAAC;MAC7E,OAAO;QACLE,KAAK,eAAE;UAAK,KAAK,EAAE;YAAEC,KAAK,EAAE;UAAO,CAAE;UAAC,GAAG,EAAC;QAAgD,EAAG;QAC7FC,SAAS,eACP,+BAAC,+BAAO;UACN,MAAM,EAAG,mBAAkBR,QAAS,mCAAmC;UACvE,aAAa,EAAEJ,IAAI,CAACa,EAAE,CAACC,IAAK;UAC5B,cAAc,EAAC,KAAK;UACpB,UAAU,EAAG,SAAQd,IAAI,CAACK,WAAY,GAAEE,cAAe,EAAE;UACzD,YAAY,EAAEH;QAAS,EAE1B;QACDW,KAAK,EAAE;MACT,CAAC;IACH,CAAC;EAAA;EAxBD,aAAaC,QAAQ,CAAC,CAACC,WAAW,CAAgB,EAAE;IAClD,MAAMC,GAAG,GAAG,IAAInB,KAAK,EAAE;IACvBkB,WAAW,CAACE,qBAAqB,CAACD,GAAG,CAACE,gBAAgB,CAAC;IACvD,OAAOF,GAAG;EACZ;AAqBF;AAAC;AAAA,gCA9BYnB,KAAK,aACCsB,eAAS;AAAA,gCADftB,KAAK,kBAGM,CAACuB,oBAAe,CAAC;AAAA,eA6B1BvB,KAAK;AAAA;AAEpBwB,gBAAS,CAACC,UAAU,CAACzB,KAAK,CAAC"}
|
|
@@ -1,70 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
5
|
require("core-js/modules/es.promise.js");
|
|
8
|
-
|
|
9
6
|
require("core-js/modules/es.regexp.exec.js");
|
|
10
|
-
|
|
11
7
|
require("core-js/modules/es.string.replace.js");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.PreparePackagesTask = void 0;
|
|
17
|
-
|
|
18
12
|
function _defineProperty2() {
|
|
19
13
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
-
|
|
21
14
|
_defineProperty2 = function () {
|
|
22
15
|
return data;
|
|
23
16
|
};
|
|
24
|
-
|
|
25
17
|
return data;
|
|
26
18
|
}
|
|
27
|
-
|
|
28
19
|
function _packageJsonFile() {
|
|
29
20
|
const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/component/package-json-file"));
|
|
30
|
-
|
|
31
21
|
_packageJsonFile = function () {
|
|
32
22
|
return data;
|
|
33
23
|
};
|
|
34
|
-
|
|
35
24
|
return data;
|
|
36
25
|
}
|
|
37
|
-
|
|
38
26
|
function _fsExtra() {
|
|
39
27
|
const data = _interopRequireDefault(require("fs-extra"));
|
|
40
|
-
|
|
41
28
|
_fsExtra = function () {
|
|
42
29
|
return data;
|
|
43
30
|
};
|
|
44
|
-
|
|
45
31
|
return data;
|
|
46
32
|
}
|
|
47
|
-
|
|
48
33
|
function _path() {
|
|
49
34
|
const data = _interopRequireDefault(require("path"));
|
|
50
|
-
|
|
51
35
|
_path = function () {
|
|
52
36
|
return data;
|
|
53
37
|
};
|
|
54
|
-
|
|
55
38
|
return data;
|
|
56
39
|
}
|
|
57
|
-
|
|
58
40
|
function _writeNpmIgnore() {
|
|
59
41
|
const data = require("./write-npm-ignore");
|
|
60
|
-
|
|
61
42
|
_writeNpmIgnore = function () {
|
|
62
43
|
return data;
|
|
63
44
|
};
|
|
64
|
-
|
|
65
45
|
return data;
|
|
66
46
|
}
|
|
67
|
-
|
|
68
47
|
/**
|
|
69
48
|
* prepare packages for publishing.
|
|
70
49
|
*/
|
|
@@ -75,9 +54,9 @@ class PreparePackagesTask {
|
|
|
75
54
|
this.envs = envs;
|
|
76
55
|
(0, _defineProperty2().default)(this, "name", 'PreparePackages');
|
|
77
56
|
(0, _defineProperty2().default)(this, "location", 'end');
|
|
78
|
-
}
|
|
79
|
-
|
|
57
|
+
}
|
|
80
58
|
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
81
60
|
async execute(context) {
|
|
82
61
|
await this.writeNpmIgnoreFile(context);
|
|
83
62
|
const result = {
|
|
@@ -85,12 +64,12 @@ class PreparePackagesTask {
|
|
|
85
64
|
};
|
|
86
65
|
return result;
|
|
87
66
|
}
|
|
88
|
-
|
|
89
67
|
async writeNpmIgnoreFile(context) {
|
|
90
68
|
await Promise.all(context.capsuleNetwork.seedersCapsules.map(async capsule => {
|
|
91
69
|
await (0, _writeNpmIgnore().writeNpmIgnore)(capsule, this.envs);
|
|
92
70
|
}));
|
|
93
71
|
}
|
|
72
|
+
|
|
94
73
|
/**
|
|
95
74
|
* remove the source files and copy the dists files
|
|
96
75
|
* into the root of the capsule.
|
|
@@ -98,8 +77,6 @@ class PreparePackagesTask {
|
|
|
98
77
|
* the internal paths are the source, so node will throw an error when trying to use them. this
|
|
99
78
|
* task makes sure that the internal paths point to the consumable code (dists).
|
|
100
79
|
*/
|
|
101
|
-
|
|
102
|
-
|
|
103
80
|
async executeDistAsRootTask(context) {
|
|
104
81
|
if (!context.env.getCompiler) return;
|
|
105
82
|
const compilerInstance = context.env.getCompiler();
|
|
@@ -110,7 +87,6 @@ class PreparePackagesTask {
|
|
|
110
87
|
await this.updatePackageJson(capsule, compilerInstance, distDir);
|
|
111
88
|
}));
|
|
112
89
|
}
|
|
113
|
-
|
|
114
90
|
async removeSourceFiles(capsule, distDir) {
|
|
115
91
|
const excludeDirs = [distDir, 'node_modules', 'public', 'bin'].map(dir => `${dir}/**`);
|
|
116
92
|
const excludeFiles = ['package.json'];
|
|
@@ -120,33 +96,26 @@ class PreparePackagesTask {
|
|
|
120
96
|
this.logger.debug(`delete the following files:\n${allFiles.join('\n')}`);
|
|
121
97
|
await Promise.all(allFiles.map(file => _fsExtra().default.remove(_path().default.join(capsule.path, file))));
|
|
122
98
|
}
|
|
123
|
-
|
|
124
99
|
async moveDistToRoot(capsule, distDir) {
|
|
125
100
|
const from = _path().default.join(capsule.path, distDir);
|
|
126
|
-
|
|
127
101
|
const to = capsule.path;
|
|
128
|
-
this.logger.debug(`move from ${from} to: ${to}`);
|
|
129
|
-
|
|
102
|
+
this.logger.debug(`move from ${from} to: ${to}`);
|
|
103
|
+
// for some reason `fs.move` throws an error "dest already exists.".
|
|
130
104
|
_fsExtra().default.moveSync(from, to);
|
|
131
105
|
}
|
|
106
|
+
|
|
132
107
|
/**
|
|
133
108
|
* by default, the "main" prop points to the dist file (e.g. "dist/index./js").
|
|
134
109
|
* here, we have to change it because there is no dist dir anymore.
|
|
135
110
|
*/
|
|
136
|
-
|
|
137
|
-
|
|
138
111
|
async updatePackageJson(capsule, compiler, distDir) {
|
|
139
112
|
const distMainFile = compiler.getDistPathBySrcPath(capsule.component.state._consumer.mainFile);
|
|
140
113
|
const distMainFileWithoutDistDir = distMainFile.replace(`${distDir}${_path().default.sep}`, '');
|
|
141
|
-
|
|
142
114
|
const packageJson = _packageJsonFile().default.loadFromCapsuleSync(capsule.path);
|
|
143
|
-
|
|
144
115
|
packageJson.addOrUpdateProperty('main', distMainFileWithoutDistDir);
|
|
145
116
|
await packageJson.write();
|
|
146
117
|
}
|
|
147
|
-
|
|
148
118
|
}
|
|
149
|
-
|
|
150
119
|
exports.PreparePackagesTask = PreparePackagesTask;
|
|
151
120
|
|
|
152
121
|
//# sourceMappingURL=prepare-packages.task.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PreparePackagesTask","constructor","aspectId","logger","envs","execute","context","writeNpmIgnoreFile","result","componentsResults","Promise","all","capsuleNetwork","seedersCapsules","map","capsule","writeNpmIgnore","executeDistAsRootTask","env","getCompiler","compilerInstance","distDir","graphCapsules","removeSourceFiles","moveDistToRoot","updatePackageJson","excludeDirs","dir","excludeFiles","allFiles","getAllFilesPaths","ignore","debug","join","file","fs","remove","path","from","to","moveSync","compiler","distMainFile","getDistPathBySrcPath","component","state","_consumer","mainFile","distMainFileWithoutDistDir","replace","sep","packageJson","PackageJsonFile","loadFromCapsuleSync","addOrUpdateProperty","write"],"sources":["prepare-packages.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask } from '@teambit/builder';\nimport { Compiler } from '@teambit/compiler';\nimport { Capsule } from '@teambit/isolator';\nimport { EnvsMain } from '@teambit/envs';\nimport { Logger } from '@teambit/logger';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport { writeNpmIgnore } from './write-npm-ignore';\n\n/**\n * prepare packages for publishing.\n */\nexport class PreparePackagesTask implements BuildTask {\n readonly name = 'PreparePackages';\n readonly location = 'end';\n constructor(readonly aspectId: string, private logger: Logger, private envs: EnvsMain) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n await this.writeNpmIgnoreFile(context);\n const result = {\n componentsResults: [],\n };\n\n return result;\n }\n\n private async writeNpmIgnoreFile(context: BuildContext) {\n await Promise.all(\n context.capsuleNetwork.seedersCapsules.map(async (capsule) => {\n await writeNpmIgnore(capsule, this.envs);\n })\n );\n }\n\n /**\n * remove the source files and copy the dists files\n * into the root of the capsule.\n * this is needed when components import from other components internal paths. without this task,\n * the internal paths are the source, so node will throw an error when trying to use them. this\n * task makes sure that the internal paths point to the consumable code (dists).\n */\n private async executeDistAsRootTask(context: BuildContext) {\n if (!context.env.getCompiler) return;\n const compilerInstance: Compiler = context.env.getCompiler();\n const distDir = compilerInstance.distDir;\n\n await Promise.all(\n context.capsuleNetwork.graphCapsules.map(async (capsule) => {\n await this.removeSourceFiles(capsule, distDir);\n await this.moveDistToRoot(capsule, distDir);\n await this.updatePackageJson(capsule, compilerInstance, distDir);\n })\n );\n }\n\n private async removeSourceFiles(capsule: Capsule, distDir: string) {\n const excludeDirs = [distDir, 'node_modules', 'public', 'bin'].map((dir) => `${dir}/**`);\n const excludeFiles = ['package.json'];\n const allFiles = capsule.getAllFilesPaths('.', { ignore: [...excludeDirs, ...excludeFiles] });\n this.logger.debug(`delete the following files:\\n${allFiles.join('\\n')}`);\n await Promise.all(allFiles.map((file) => fs.remove(path.join(capsule.path, file))));\n }\n\n private async moveDistToRoot(capsule: Capsule, distDir: string) {\n const from = path.join(capsule.path, distDir);\n const to = capsule.path;\n this.logger.debug(`move from ${from} to: ${to}`);\n // for some reason `fs.move` throws an error \"dest already exists.\".\n fs.moveSync(from, to);\n }\n\n /**\n * by default, the \"main\" prop points to the dist file (e.g. \"dist/index./js\").\n * here, we have to change it because there is no dist dir anymore.\n */\n private async updatePackageJson(capsule: Capsule, compiler: Compiler, distDir: string) {\n const distMainFile = compiler.getDistPathBySrcPath(capsule.component.state._consumer.mainFile);\n const distMainFileWithoutDistDir = distMainFile.replace(`${distDir}${path.sep}`, '');\n const packageJson = PackageJsonFile.loadFromCapsuleSync(capsule.path);\n packageJson.addOrUpdateProperty('main', distMainFileWithoutDistDir);\n await packageJson.write();\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["PreparePackagesTask","constructor","aspectId","logger","envs","execute","context","writeNpmIgnoreFile","result","componentsResults","Promise","all","capsuleNetwork","seedersCapsules","map","capsule","writeNpmIgnore","executeDistAsRootTask","env","getCompiler","compilerInstance","distDir","graphCapsules","removeSourceFiles","moveDistToRoot","updatePackageJson","excludeDirs","dir","excludeFiles","allFiles","getAllFilesPaths","ignore","debug","join","file","fs","remove","path","from","to","moveSync","compiler","distMainFile","getDistPathBySrcPath","component","state","_consumer","mainFile","distMainFileWithoutDistDir","replace","sep","packageJson","PackageJsonFile","loadFromCapsuleSync","addOrUpdateProperty","write"],"sources":["prepare-packages.task.ts"],"sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask } from '@teambit/builder';\nimport { Compiler } from '@teambit/compiler';\nimport { Capsule } from '@teambit/isolator';\nimport { EnvsMain } from '@teambit/envs';\nimport { Logger } from '@teambit/logger';\nimport PackageJsonFile from '@teambit/legacy/dist/consumer/component/package-json-file';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport { writeNpmIgnore } from './write-npm-ignore';\n\n/**\n * prepare packages for publishing.\n */\nexport class PreparePackagesTask implements BuildTask {\n readonly name = 'PreparePackages';\n readonly location = 'end';\n constructor(readonly aspectId: string, private logger: Logger, private envs: EnvsMain) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n await this.writeNpmIgnoreFile(context);\n const result = {\n componentsResults: [],\n };\n\n return result;\n }\n\n private async writeNpmIgnoreFile(context: BuildContext) {\n await Promise.all(\n context.capsuleNetwork.seedersCapsules.map(async (capsule) => {\n await writeNpmIgnore(capsule, this.envs);\n })\n );\n }\n\n /**\n * remove the source files and copy the dists files\n * into the root of the capsule.\n * this is needed when components import from other components internal paths. without this task,\n * the internal paths are the source, so node will throw an error when trying to use them. this\n * task makes sure that the internal paths point to the consumable code (dists).\n */\n private async executeDistAsRootTask(context: BuildContext) {\n if (!context.env.getCompiler) return;\n const compilerInstance: Compiler = context.env.getCompiler();\n const distDir = compilerInstance.distDir;\n\n await Promise.all(\n context.capsuleNetwork.graphCapsules.map(async (capsule) => {\n await this.removeSourceFiles(capsule, distDir);\n await this.moveDistToRoot(capsule, distDir);\n await this.updatePackageJson(capsule, compilerInstance, distDir);\n })\n );\n }\n\n private async removeSourceFiles(capsule: Capsule, distDir: string) {\n const excludeDirs = [distDir, 'node_modules', 'public', 'bin'].map((dir) => `${dir}/**`);\n const excludeFiles = ['package.json'];\n const allFiles = capsule.getAllFilesPaths('.', { ignore: [...excludeDirs, ...excludeFiles] });\n this.logger.debug(`delete the following files:\\n${allFiles.join('\\n')}`);\n await Promise.all(allFiles.map((file) => fs.remove(path.join(capsule.path, file))));\n }\n\n private async moveDistToRoot(capsule: Capsule, distDir: string) {\n const from = path.join(capsule.path, distDir);\n const to = capsule.path;\n this.logger.debug(`move from ${from} to: ${to}`);\n // for some reason `fs.move` throws an error \"dest already exists.\".\n fs.moveSync(from, to);\n }\n\n /**\n * by default, the \"main\" prop points to the dist file (e.g. \"dist/index./js\").\n * here, we have to change it because there is no dist dir anymore.\n */\n private async updatePackageJson(capsule: Capsule, compiler: Compiler, distDir: string) {\n const distMainFile = compiler.getDistPathBySrcPath(capsule.component.state._consumer.mainFile);\n const distMainFileWithoutDistDir = distMainFile.replace(`${distDir}${path.sep}`, '');\n const packageJson = PackageJsonFile.loadFromCapsuleSync(capsule.path);\n packageJson.addOrUpdateProperty('main', distMainFileWithoutDistDir);\n await packageJson.write();\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
require("core-js/modules/es.promise.js");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.PublishDryRunTask = void 0;
|
|
11
|
-
|
|
12
9
|
function _defineProperty2() {
|
|
13
10
|
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
-
|
|
15
11
|
_defineProperty2 = function () {
|
|
16
12
|
return data;
|
|
17
13
|
};
|
|
18
|
-
|
|
19
14
|
return data;
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
/**
|
|
23
17
|
* publish build task is running "publish --dry-run" to avoid later npm errors during export
|
|
24
18
|
*/
|
|
@@ -32,15 +26,13 @@ class PublishDryRunTask {
|
|
|
32
26
|
(0, _defineProperty2().default)(this, "location", 'end');
|
|
33
27
|
(0, _defineProperty2().default)(this, "dependencies", void 0);
|
|
34
28
|
}
|
|
35
|
-
|
|
36
29
|
async execute(context) {
|
|
37
30
|
this.publisher.options.dryRun = true;
|
|
38
|
-
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
39
|
-
|
|
31
|
+
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
32
|
+
// const capsulesToPublish = capsules.filter((c) => this.publisher.shouldPublish(c.component.config.extensions));
|
|
40
33
|
const capsulesToPublish = [];
|
|
41
34
|
capsules.forEach(c => {
|
|
42
35
|
const shouldPublish = this.publisher.shouldPublish(c.component.config.extensions);
|
|
43
|
-
|
|
44
36
|
if (shouldPublish) {
|
|
45
37
|
capsulesToPublish.push(c);
|
|
46
38
|
}
|
|
@@ -56,9 +48,7 @@ class PublishDryRunTask {
|
|
|
56
48
|
artifacts: []
|
|
57
49
|
};
|
|
58
50
|
}
|
|
59
|
-
|
|
60
51
|
}
|
|
61
|
-
|
|
62
52
|
exports.PublishDryRunTask = PublishDryRunTask;
|
|
63
53
|
|
|
64
54
|
//# sourceMappingURL=publish-dry-run.task.js.map
|