@teambit/pkg 0.0.565 → 0.0.569
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/pkg.main.runtime.js +9 -11
- package/dist/pkg.main.runtime.js.map +1 -1
- package/exceptions/index.ts +3 -0
- package/exceptions/package-tar-filet-not-found.ts +8 -0
- package/exceptions/pkg-artifact-not-found.ts +8 -0
- package/exceptions/scope-not-found.ts +14 -0
- package/pack.cmd.tsx +68 -0
- package/package-dependency/index.ts +2 -0
- package/package-dependency/package-dependency-factory.ts +71 -0
- package/package-dependency/package-dependency.ts +20 -0
- package/package-tar/teambit-pkg-0.0.569.tgz +0 -0
- package/package.json +19 -34
- package/pkg.service.tsx +39 -0
- package/publish.cmd.tsx +57 -0
- package/types/asset.d.ts +29 -0
- package/types/style.d.ts +42 -0
package/dist/pkg.main.runtime.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
require("core-js/modules/es.symbol.description.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.symbol.async-iterator.js");
|
|
8
|
+
|
|
5
9
|
require("core-js/modules/es.array.iterator.js");
|
|
6
10
|
|
|
7
11
|
require("core-js/modules/es.promise.js");
|
|
@@ -21,16 +25,6 @@ function _defineProperty2() {
|
|
|
21
25
|
return data;
|
|
22
26
|
}
|
|
23
27
|
|
|
24
|
-
function _asyncIterator2() {
|
|
25
|
-
const data = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
|
|
26
|
-
|
|
27
|
-
_asyncIterator2 = function () {
|
|
28
|
-
return data;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
return data;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
28
|
function _lodash() {
|
|
35
29
|
const data = require("lodash");
|
|
36
30
|
|
|
@@ -345,6 +339,10 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
345
339
|
|
|
346
340
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
347
341
|
|
|
342
|
+
function _asyncIterator(iterable) { var method, async, sync, retry = 2; if (typeof Symbol !== "undefined") { async = Symbol.asyncIterator; sync = Symbol.iterator; } while (retry--) { if (async && (method = iterable[async]) != null) { return method.call(iterable); } if (sync && (method = iterable[sync]) != null) { return new AsyncFromSyncIterator(method.call(iterable)); } async = "@@asyncIterator"; sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
343
|
+
|
|
344
|
+
function AsyncFromSyncIterator(s) { AsyncFromSyncIterator = function (s) { this.s = s; this.n = s.next; }; AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (value) { var ret = this.s.return; if (ret === undefined) { return Promise.resolve({ value: value, done: true }); } return AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function (value) { var thr = this.s.return; if (thr === undefined) return Promise.reject(value); return AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }; function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) { return Promise.reject(new TypeError(r + " is not an object.")); } var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return new AsyncFromSyncIterator(s); }
|
|
345
|
+
|
|
348
346
|
class PkgMain {
|
|
349
347
|
static async provider([cli, scope, envs, isolator, logger, workspace, builder, dependencyResolver, componentAspect, graphql], config, [packageJsonPropsRegistry]) {
|
|
350
348
|
const logPublisher = logger.createLogger(_pkg().PkgAspect.id);
|
|
@@ -580,7 +578,7 @@ class PkgMain {
|
|
|
580
578
|
var _iteratorError;
|
|
581
579
|
|
|
582
580
|
try {
|
|
583
|
-
for (var _iterator = (
|
|
581
|
+
for (var _iterator = _asyncIterator(iterable), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
|
|
584
582
|
const snap = _step.value;
|
|
585
583
|
const manifest = await this.getSnapManifest(component, snap);
|
|
586
584
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["pkg.main.runtime.ts"],"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","registerService","PkgService","registerRoute","PackageRoute","preparePackagesTask","PreparePackagesTask","registerBuildTasks","registerTagTasks","registerSnapTasks","onComponentLoad","component","data","mergePackageJsonProps","packageJsonModification","PackageJsonTransformer","registerPackageJsonTransformer","transformPackageJson","bind","PackCmd","PublishCmd","getPackageName","state","_consumer","getModulePath","options","pkgName","relativePath","absPath","path","Error","constructor","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","getPackageJsonModifications","currentData","getPkgArtifact","artifacts","getArtifactsVinylByExtension","PkgArtifactNotFound","PkgArtifact","getManifest","name","latestVersion","latest","BitError","preReleaseLatestTags","tags","getPreReleaseLatestTags","distTags","versions","getAllSnapsManifests","versionsWithoutEmpty","externalRegistry","isPublishedToExternalRegistry","iterable","snapsIterable","result","snap","manifest","getSnapManifest","push","pkgExt","publishConfig","getComponentBuildData","getDataByAspect","idWithCorrectVersion","changeVersion","hash","updatedComponent","toString","pkgJson","undefined","checksum","error","dist","shasum","tarball","getRoute","routePath","getPackageTarFile","getArtifactsVinylByExtensionAndName","TAR_FILE_ARTIFACT_NAME","PackageTarFiletNotFound","legacyComponent","packageJsonObject","resolveComponentId","newComponent","Object","assign","MainRuntime","CLIAspect","ScopeAspect","EnvsAspect","IsolatorAspect","LoggerAspect","WorkspaceAspect","BuilderAspect","DependencyResolverAspect","ComponentAspect","GraphqlAspect","Slot","withType","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;;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;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;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;;AACA;AAAA;;AAAA;AAAA;AAAA;;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","sourcesContent":["import { compact, omit } from 'lodash';\nimport { join } from 'path';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain, 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 componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { GraphqlMain, GraphqlAspect } from '@teambit/graphql';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\n\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\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\ntype ComponentPackageManifest = {\n name: string;\n distTags: Record<string, string>;\n externalRegistry: boolean;\n versions: VersionPackageManifest[];\n};\n\ntype VersionPackageManifest = {\n [key: string]: any;\n dist: {\n tarball: string;\n shasum: string;\n };\n};\n\nexport class PkgMain {\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 );\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 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 /**\n * get the package name of a component.\n */\n getPackageName(component: Component) {\n return componentIdToPackageName(component.state._consumer);\n }\n\n /**\n * returns the package path in the /node_modules/ folder\n */\n getModulePath(component: Component, options: { absPath?: boolean } = {}) {\n const pkgName = this.getPackageName(component);\n const relativePath = join('node_modules', pkgName);\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 *Creates an instance of PkgExtension.\n * @param {PkgExtensionConfig} config\n * @param {PackageJsonPropsRegistry} packageJsonPropsRegistry\n * @param {Packer} packer\n * @memberof PkgExtension\n */\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\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.getArtifactsVinylByExtension(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 distTags = {\n latest: latestVersion,\n ...preReleaseLatestTags,\n };\n\n const versions = await this.getAllSnapsManifests(component);\n const versionsWithoutEmpty: VersionPackageManifest[] = compact(versions);\n const externalRegistry = this.isPublishedToExternalRegistry(component);\n return {\n name,\n distTags,\n externalRegistry,\n versions: versionsWithoutEmpty,\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: Component): boolean {\n const pkgExt = component.state.aspects.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 // const state = await this.scope.getState(component.id, tag.hash);\n // const currentExtension = state.aspects.get(PkgAspect.id);\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 // 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.getArtifactsVinylByExtensionAndName(\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"]}
|
|
1
|
+
{"version":3,"sources":["pkg.main.runtime.ts"],"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","registerService","PkgService","registerRoute","PackageRoute","preparePackagesTask","PreparePackagesTask","registerBuildTasks","registerTagTasks","registerSnapTasks","onComponentLoad","component","data","mergePackageJsonProps","packageJsonModification","PackageJsonTransformer","registerPackageJsonTransformer","transformPackageJson","bind","PackCmd","PublishCmd","getPackageName","state","_consumer","getModulePath","options","pkgName","relativePath","absPath","path","Error","constructor","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","getPackageJsonModifications","currentData","getPkgArtifact","artifacts","getArtifactsVinylByExtension","PkgArtifactNotFound","PkgArtifact","getManifest","name","latestVersion","latest","BitError","preReleaseLatestTags","tags","getPreReleaseLatestTags","distTags","versions","getAllSnapsManifests","versionsWithoutEmpty","externalRegistry","isPublishedToExternalRegistry","iterable","snapsIterable","result","snap","manifest","getSnapManifest","push","pkgExt","publishConfig","getComponentBuildData","getDataByAspect","idWithCorrectVersion","changeVersion","hash","updatedComponent","toString","pkgJson","undefined","checksum","error","dist","shasum","tarball","getRoute","routePath","getPackageTarFile","getArtifactsVinylByExtensionAndName","TAR_FILE_ARTIFACT_NAME","PackageTarFiletNotFound","legacyComponent","packageJsonObject","resolveComponentId","newComponent","Object","assign","MainRuntime","CLIAspect","ScopeAspect","EnvsAspect","IsolatorAspect","LoggerAspect","WorkspaceAspect","BuilderAspect","DependencyResolverAspect","ComponentAspect","GraphqlAspect","Slot","withType","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;;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;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;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;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;A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","sourcesContent":["import { compact, omit } from 'lodash';\nimport { join } from 'path';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport ComponentAspect, { Component, ComponentMain, 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 componentIdToPackageName from '@teambit/legacy/dist/utils/bit/component-id-to-package-name';\nimport { BuilderMain, BuilderAspect } from '@teambit/builder';\nimport { BitError } from '@teambit/bit-error';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { GraphqlMain, GraphqlAspect } from '@teambit/graphql';\nimport { DependencyResolverAspect, DependencyResolverMain } from '@teambit/dependency-resolver';\n\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\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\ntype ComponentPackageManifest = {\n name: string;\n distTags: Record<string, string>;\n externalRegistry: boolean;\n versions: VersionPackageManifest[];\n};\n\ntype VersionPackageManifest = {\n [key: string]: any;\n dist: {\n tarball: string;\n shasum: string;\n };\n};\n\nexport class PkgMain {\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 );\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 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 /**\n * get the package name of a component.\n */\n getPackageName(component: Component) {\n return componentIdToPackageName(component.state._consumer);\n }\n\n /**\n * returns the package path in the /node_modules/ folder\n */\n getModulePath(component: Component, options: { absPath?: boolean } = {}) {\n const pkgName = this.getPackageName(component);\n const relativePath = join('node_modules', pkgName);\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 *Creates an instance of PkgExtension.\n * @param {PkgExtensionConfig} config\n * @param {PackageJsonPropsRegistry} packageJsonPropsRegistry\n * @param {Packer} packer\n * @memberof PkgExtension\n */\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\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.getArtifactsVinylByExtension(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 distTags = {\n latest: latestVersion,\n ...preReleaseLatestTags,\n };\n\n const versions = await this.getAllSnapsManifests(component);\n const versionsWithoutEmpty: VersionPackageManifest[] = compact(versions);\n const externalRegistry = this.isPublishedToExternalRegistry(component);\n return {\n name,\n distTags,\n externalRegistry,\n versions: versionsWithoutEmpty,\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: Component): boolean {\n const pkgExt = component.state.aspects.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 // const state = await this.scope.getState(component.id, tag.hash);\n // const currentExtension = state.aspects.get(PkgAspect.id);\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 // 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.getArtifactsVinylByExtensionAndName(\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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComponentID } from '@teambit/component';
|
|
2
|
+
import { BitError } from '@teambit/bit-error';
|
|
3
|
+
|
|
4
|
+
export class PackageTarFiletNotFound extends BitError {
|
|
5
|
+
constructor(readonly componentId: ComponentID) {
|
|
6
|
+
super(`package tar file artifact for component ${componentId.toString()} was not found`);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ComponentID } from '@teambit/component';
|
|
2
|
+
import { BitError } from '@teambit/bit-error';
|
|
3
|
+
|
|
4
|
+
export class PkgArtifactNotFound extends BitError {
|
|
5
|
+
constructor(readonly componentId: ComponentID) {
|
|
6
|
+
super(`pkg artifact for component ${componentId.toString()} was not found`);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BitError } from '@teambit/bit-error';
|
|
2
|
+
|
|
3
|
+
export class ScopeNotFound extends BitError {
|
|
4
|
+
constructor(readonly scopePath?: string) {
|
|
5
|
+
super(generateMessage(scopePath));
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function generateMessage(scopePath?: string) {
|
|
10
|
+
if (scopePath) {
|
|
11
|
+
return `scope not found at ${scopePath}`;
|
|
12
|
+
}
|
|
13
|
+
return 'scope not found';
|
|
14
|
+
}
|
package/pack.cmd.tsx
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
|
|
5
|
+
import { Packer, PackOptions } from './packer';
|
|
6
|
+
|
|
7
|
+
type PackArgs = [string, string];
|
|
8
|
+
type PackCmdOptions = {
|
|
9
|
+
outDir?: string;
|
|
10
|
+
override?: boolean;
|
|
11
|
+
prefix?: boolean;
|
|
12
|
+
keep?: boolean;
|
|
13
|
+
// useCapsule?: boolean;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export class PackCmd implements Command {
|
|
17
|
+
name = 'pack <componentId> [scopePath]';
|
|
18
|
+
description = 'create tar for npm publish';
|
|
19
|
+
options = [
|
|
20
|
+
['d', 'out-dir <out-dir>', 'directory to put the result tar file'],
|
|
21
|
+
['o', 'override', 'override existing pack file'],
|
|
22
|
+
['k', 'keep', 'should keep isolated environment [default = false]'],
|
|
23
|
+
['p', 'prefix', 'keep custom (binding) prefix'],
|
|
24
|
+
// ['c', 'use-capsule', 'isolate using the capsule and pack on the capsule'],
|
|
25
|
+
['j', 'json', 'return the output as JSON'],
|
|
26
|
+
] as CommandOptions;
|
|
27
|
+
shortDescription = '';
|
|
28
|
+
alias = '';
|
|
29
|
+
group = 'collaborate';
|
|
30
|
+
|
|
31
|
+
constructor(private packer: Packer) {}
|
|
32
|
+
|
|
33
|
+
async report(args: PackArgs, options: PackCmdOptions) {
|
|
34
|
+
const packResult = await this.json(args, options);
|
|
35
|
+
const warnings: any = packResult.data?.warnings || [];
|
|
36
|
+
const warningsOutput: any = warnings.map((warning) => chalk.yellow(warning)).join('\n');
|
|
37
|
+
const errors: any = packResult.data?.errors || [];
|
|
38
|
+
const errorsOutput: any = errors.map((error) => chalk.yellow(error)).join('\n');
|
|
39
|
+
const tarPathOutput = packResult.data.metadata?.tarPath
|
|
40
|
+
? chalk.green(`tar path for component ${packResult.data.id}: ${packResult.data.metadata?.tarPath}`)
|
|
41
|
+
: '';
|
|
42
|
+
return `${warningsOutput}\n${errorsOutput}\n${tarPathOutput}`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async json([componentId, scopePath]: PackArgs, options: PackCmdOptions) {
|
|
46
|
+
const compId = typeof componentId === 'string' ? componentId : componentId[0];
|
|
47
|
+
let scopePathStr: string | undefined;
|
|
48
|
+
if (scopePath) {
|
|
49
|
+
scopePathStr = typeof scopePath !== 'string' ? scopePath[0] : scopePath;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const concreteOpts: PackOptions = {
|
|
53
|
+
writeOptions: {
|
|
54
|
+
outDir: options.outDir,
|
|
55
|
+
override: options.override,
|
|
56
|
+
},
|
|
57
|
+
prefix: options.prefix,
|
|
58
|
+
keep: options.keep,
|
|
59
|
+
// useCapsule: options.useCapsule,
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const packResult = await this.packer.packComponent(compId, scopePathStr, concreteOpts);
|
|
63
|
+
return {
|
|
64
|
+
data: packResult,
|
|
65
|
+
code: 0,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DependencyLifecycleType,
|
|
3
|
+
SerializedDependency,
|
|
4
|
+
DependencyFactory,
|
|
5
|
+
DependencyList,
|
|
6
|
+
} from '@teambit/dependency-resolver';
|
|
7
|
+
import LegacyComponent from '@teambit/legacy/dist/consumer/component';
|
|
8
|
+
import { PackageDependency, SerializedPackageDependency } from './package-dependency';
|
|
9
|
+
|
|
10
|
+
const TYPE = 'package';
|
|
11
|
+
// TODO: think about where is the right place to put this
|
|
12
|
+
export class PackageDependencyFactory implements DependencyFactory {
|
|
13
|
+
// parse<PackageDependency, SerializedDependency>(serialized: SerializedDependency): PackageDependency {
|
|
14
|
+
// return new PackageDependency(serialized.id, serialized.version, serialized.type, serialized.lifecycle as DependencyLifecycleType);
|
|
15
|
+
// }
|
|
16
|
+
type: string;
|
|
17
|
+
|
|
18
|
+
constructor() {
|
|
19
|
+
this.type = TYPE;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async parse<PackageDependency, S extends SerializedDependency>(serialized: S): Promise<PackageDependency> {
|
|
23
|
+
// return new PackageDependency(serialized.id, serialized.version, serialized.type, serialized.lifecycle as DependencyLifecycleType) as unknown as PackageDependency;
|
|
24
|
+
return (new PackageDependency(
|
|
25
|
+
serialized.id,
|
|
26
|
+
serialized.version,
|
|
27
|
+
serialized.lifecycle as DependencyLifecycleType,
|
|
28
|
+
serialized.source
|
|
29
|
+
) as unknown) as PackageDependency;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async fromLegacyComponent(legacyComponent: LegacyComponent): Promise<DependencyList> {
|
|
33
|
+
const runtimePackageDeps = transformLegacyComponentPackageDepsToSerializedDependency(
|
|
34
|
+
legacyComponent.packageDependencies,
|
|
35
|
+
'runtime'
|
|
36
|
+
);
|
|
37
|
+
const devPackageDeps = transformLegacyComponentPackageDepsToSerializedDependency(
|
|
38
|
+
legacyComponent.devPackageDependencies,
|
|
39
|
+
'dev'
|
|
40
|
+
);
|
|
41
|
+
const peerPackageDeps = transformLegacyComponentPackageDepsToSerializedDependency(
|
|
42
|
+
legacyComponent.peerPackageDependencies,
|
|
43
|
+
'peer'
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
const serializedPackageDeps = runtimePackageDeps.concat(devPackageDeps).concat(peerPackageDeps);
|
|
47
|
+
const packageDepsP: Promise<PackageDependency>[] = serializedPackageDeps.map((dep) => this.parse(dep));
|
|
48
|
+
const packageDeps: PackageDependency[] = await Promise.all(packageDepsP);
|
|
49
|
+
const dependencyList = new DependencyList(packageDeps);
|
|
50
|
+
return dependencyList;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// parse: <PackageDependency, SerializedDependency>(serialized: SerializedDependency) => {
|
|
54
|
+
// return new PackageDependency(serialized.id, serialized.version, serialized.type, serialized.lifecycle as DependencyLifecycleType);
|
|
55
|
+
// }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function transformLegacyComponentPackageDepsToSerializedDependency(
|
|
59
|
+
packageDepObj: Record<string, string>,
|
|
60
|
+
lifecycle: DependencyLifecycleType
|
|
61
|
+
): SerializedPackageDependency[] {
|
|
62
|
+
const res = Object.entries(packageDepObj).map(([packageName, version]) => {
|
|
63
|
+
return {
|
|
64
|
+
id: packageName,
|
|
65
|
+
version,
|
|
66
|
+
__type: TYPE,
|
|
67
|
+
lifecycle,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
return res;
|
|
71
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseDependency,
|
|
3
|
+
SerializedDependency,
|
|
4
|
+
DependencyLifecycleType,
|
|
5
|
+
DependencySource,
|
|
6
|
+
} from '@teambit/dependency-resolver';
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
9
|
+
export interface SerializedPackageDependency extends SerializedDependency {}
|
|
10
|
+
|
|
11
|
+
export class PackageDependency extends BaseDependency {
|
|
12
|
+
constructor(id: string, version: string, lifecycle: DependencyLifecycleType, source?: DependencySource) {
|
|
13
|
+
super(id, version, lifecycle, source);
|
|
14
|
+
this._type = 'package';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
getPackageName() {
|
|
18
|
+
return this.id;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/pkg",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.569",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/pkg/pkg",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pkg",
|
|
8
8
|
"name": "pkg",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.569"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -22,20 +22,20 @@
|
|
|
22
22
|
"p-map-series": "2.1.0",
|
|
23
23
|
"@babel/runtime": "7.12.18",
|
|
24
24
|
"core-js": "^3.0.0",
|
|
25
|
-
"@teambit/cli": "0.0.
|
|
26
|
-
"@teambit/builder": "0.0.
|
|
27
|
-
"@teambit/logger": "0.0.
|
|
28
|
-
"@teambit/component": "0.0.
|
|
29
|
-
"@teambit/express": "0.0.
|
|
30
|
-
"@teambit/isolator": "0.0.
|
|
31
|
-
"@teambit/scope": "0.0.
|
|
32
|
-
"@teambit/graphql": "0.0.
|
|
33
|
-
"@teambit/bit-error": "0.0.
|
|
34
|
-
"@teambit/dependency-resolver": "0.0.
|
|
35
|
-
"@teambit/envs": "0.0.
|
|
36
|
-
"@teambit/workspace": "0.0.
|
|
37
|
-
"@teambit/compiler": "0.0.
|
|
38
|
-
"@teambit/legacy-bit-id": "0.0.
|
|
25
|
+
"@teambit/cli": "0.0.395",
|
|
26
|
+
"@teambit/builder": "0.0.569",
|
|
27
|
+
"@teambit/logger": "0.0.481",
|
|
28
|
+
"@teambit/component": "0.0.569",
|
|
29
|
+
"@teambit/express": "0.0.485",
|
|
30
|
+
"@teambit/isolator": "0.0.569",
|
|
31
|
+
"@teambit/scope": "0.0.569",
|
|
32
|
+
"@teambit/graphql": "0.0.569",
|
|
33
|
+
"@teambit/bit-error": "0.0.381",
|
|
34
|
+
"@teambit/dependency-resolver": "0.0.569",
|
|
35
|
+
"@teambit/envs": "0.0.569",
|
|
36
|
+
"@teambit/workspace": "0.0.569",
|
|
37
|
+
"@teambit/compiler": "0.0.569",
|
|
38
|
+
"@teambit/legacy-bit-id": "0.0.384"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/mime": "2.0.3",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"@types/jest": "^26.0.0",
|
|
48
48
|
"@types/react-dom": "^17.0.5",
|
|
49
49
|
"@types/node": "12.20.4",
|
|
50
|
-
"@teambit/pkg.aspect-docs.pkg": "0.0.
|
|
50
|
+
"@teambit/pkg.aspect-docs.pkg": "0.0.115"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"@teambit/legacy": "1.0.
|
|
53
|
+
"@teambit/legacy": "1.0.181",
|
|
54
54
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
55
55
|
"react": "^16.8.0 || ^17.0.0"
|
|
56
56
|
},
|
|
@@ -78,27 +78,12 @@
|
|
|
78
78
|
"react": "-"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"@teambit/legacy": "1.0.
|
|
81
|
+
"@teambit/legacy": "1.0.181",
|
|
82
82
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
83
83
|
"react": "^16.8.0 || ^17.0.0"
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
|
-
"files": [
|
|
88
|
-
"dist",
|
|
89
|
-
"!dist/tsconfig.tsbuildinfo",
|
|
90
|
-
"**/*.md",
|
|
91
|
-
"**/*.mdx",
|
|
92
|
-
"**/*.js",
|
|
93
|
-
"**/*.json",
|
|
94
|
-
"**/*.sass",
|
|
95
|
-
"**/*.scss",
|
|
96
|
-
"**/*.less",
|
|
97
|
-
"**/*.css",
|
|
98
|
-
"**/*.css",
|
|
99
|
-
"**/*.jpeg",
|
|
100
|
-
"**/*.gif"
|
|
101
|
-
],
|
|
102
87
|
"private": false,
|
|
103
88
|
"engines": {
|
|
104
89
|
"node": ">=12.22.0"
|
package/pkg.service.tsx
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Text, Newline } from 'ink';
|
|
3
|
+
import { EnvService, EnvDefinition } from '@teambit/envs';
|
|
4
|
+
import highlight from 'cli-highlight';
|
|
5
|
+
|
|
6
|
+
export type PkgDescriptor = {
|
|
7
|
+
id: string;
|
|
8
|
+
displayName: string;
|
|
9
|
+
config?: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export class PkgService implements EnvService<{}, PkgDescriptor> {
|
|
13
|
+
name = 'Pkg';
|
|
14
|
+
|
|
15
|
+
async render(env: EnvDefinition) {
|
|
16
|
+
const descriptor = this.getDescriptor(env);
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Text key={descriptor?.id}>
|
|
20
|
+
<Text color="cyan">configured package.json properties: </Text>
|
|
21
|
+
<Newline />
|
|
22
|
+
<Text>
|
|
23
|
+
{descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}
|
|
24
|
+
</Text>
|
|
25
|
+
<Newline />
|
|
26
|
+
</Text>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getDescriptor(env: EnvDefinition): PkgDescriptor | undefined {
|
|
31
|
+
if (!env.env.getPackageJsonProps) return undefined;
|
|
32
|
+
const props = env.env.getPackageJsonProps();
|
|
33
|
+
return {
|
|
34
|
+
id: this.name,
|
|
35
|
+
config: props ? JSON.stringify(props, null, 2) : undefined,
|
|
36
|
+
displayName: this.name,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
package/publish.cmd.tsx
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ComponentResult } from '@teambit/builder';
|
|
2
|
+
import { Command, CommandOptions } from '@teambit/cli';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
|
|
5
|
+
import { Publisher, PublisherOptions } from './publisher';
|
|
6
|
+
|
|
7
|
+
type PublishArgs = [string];
|
|
8
|
+
|
|
9
|
+
export class PublishCmd implements Command {
|
|
10
|
+
name = 'publish <componentId>';
|
|
11
|
+
description = 'publish components to npm (npm publish)';
|
|
12
|
+
options = [
|
|
13
|
+
['d', 'dry-run', 'npm publish --dry-run'],
|
|
14
|
+
['', 'allow-staged', 'allow publish components that were not exported yet (not recommended)'],
|
|
15
|
+
['j', 'json', 'return the output as JSON'],
|
|
16
|
+
] as CommandOptions;
|
|
17
|
+
shortDescription = '';
|
|
18
|
+
alias = '';
|
|
19
|
+
private = true;
|
|
20
|
+
group = 'collaborate';
|
|
21
|
+
|
|
22
|
+
constructor(private publisher: Publisher) {}
|
|
23
|
+
|
|
24
|
+
async report(args: PublishArgs, options: PublisherOptions) {
|
|
25
|
+
const result = await this.json(args, options);
|
|
26
|
+
const publishResults: ComponentResult[] = result.data;
|
|
27
|
+
if (!publishResults.length) return 'no components were found candidate for publish';
|
|
28
|
+
|
|
29
|
+
const publishOrDryRun = options.dryRun ? 'dry-run' : 'published';
|
|
30
|
+
const title = chalk.white.bold(`successfully ${publishOrDryRun} the following components\n`);
|
|
31
|
+
const output = publishResults
|
|
32
|
+
.map((publishResult) => {
|
|
33
|
+
const compName = publishResult.component.id.toString();
|
|
34
|
+
const getData = () => {
|
|
35
|
+
if (publishResult.errors?.length) {
|
|
36
|
+
return chalk.red(publishResult.errors.join('\n'));
|
|
37
|
+
}
|
|
38
|
+
return chalk.green((publishResult.metadata?.publishedPackage as string) || '');
|
|
39
|
+
};
|
|
40
|
+
return `${chalk.bold(compName)}\n${getData()}\n`;
|
|
41
|
+
})
|
|
42
|
+
.join('\n');
|
|
43
|
+
return title + output;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async json(
|
|
47
|
+
[componentId]: PublishArgs,
|
|
48
|
+
options: PublisherOptions
|
|
49
|
+
): Promise<{ data: ComponentResult[]; code: number }> {
|
|
50
|
+
const compId = typeof componentId === 'string' ? componentId : componentId[0];
|
|
51
|
+
const packResult = await this.publisher.publish([compId], options);
|
|
52
|
+
return {
|
|
53
|
+
data: packResult,
|
|
54
|
+
code: 0,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
package/types/asset.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare module '*.png' {
|
|
2
|
+
const value: any;
|
|
3
|
+
export = value;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.svg' {
|
|
6
|
+
import type { FunctionComponent, SVGProps } from 'react';
|
|
7
|
+
|
|
8
|
+
export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
|
|
9
|
+
const src: string;
|
|
10
|
+
export default src;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// @TODO Gilad
|
|
14
|
+
declare module '*.jpg' {
|
|
15
|
+
const value: any;
|
|
16
|
+
export = value;
|
|
17
|
+
}
|
|
18
|
+
declare module '*.jpeg' {
|
|
19
|
+
const value: any;
|
|
20
|
+
export = value;
|
|
21
|
+
}
|
|
22
|
+
declare module '*.gif' {
|
|
23
|
+
const value: any;
|
|
24
|
+
export = value;
|
|
25
|
+
}
|
|
26
|
+
declare module '*.bmp' {
|
|
27
|
+
const value: any;
|
|
28
|
+
export = value;
|
|
29
|
+
}
|
package/types/style.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
declare module '*.module.css' {
|
|
2
|
+
const classes: { readonly [key: string]: string };
|
|
3
|
+
export default classes;
|
|
4
|
+
}
|
|
5
|
+
declare module '*.module.scss' {
|
|
6
|
+
const classes: { readonly [key: string]: string };
|
|
7
|
+
export default classes;
|
|
8
|
+
}
|
|
9
|
+
declare module '*.module.sass' {
|
|
10
|
+
const classes: { readonly [key: string]: string };
|
|
11
|
+
export default classes;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
declare module '*.module.less' {
|
|
15
|
+
const classes: { readonly [key: string]: string };
|
|
16
|
+
export default classes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
declare module '*.less' {
|
|
20
|
+
const classes: { readonly [key: string]: string };
|
|
21
|
+
export default classes;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
declare module '*.css' {
|
|
25
|
+
const classes: { readonly [key: string]: string };
|
|
26
|
+
export default classes;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
declare module '*.sass' {
|
|
30
|
+
const classes: { readonly [key: string]: string };
|
|
31
|
+
export default classes;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare module '*.scss' {
|
|
35
|
+
const classes: { readonly [key: string]: string };
|
|
36
|
+
export default classes;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare module '*.mdx' {
|
|
40
|
+
const component: any;
|
|
41
|
+
export default component;
|
|
42
|
+
}
|