@teambit/pkg 0.0.551 → 0.0.556

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.
Files changed (43) hide show
  1. package/dist/pack.task.d.ts +3 -0
  2. package/dist/package.route.d.ts +8 -1
  3. package/dist/pkg.main.runtime.d.ts +100 -1
  4. package/dist/pkg.main.runtime.js +14 -4
  5. package/dist/pkg.main.runtime.js.map +1 -1
  6. package/dist/prepare-packages.task.d.ts +18 -1
  7. package/dist/prepare-packages.task.js +19 -1
  8. package/dist/prepare-packages.task.js.map +1 -1
  9. package/dist/publish-dry-run.task.d.ts +3 -0
  10. package/dist/publish.task.d.ts +3 -0
  11. package/dist/publisher.d.ts +4 -0
  12. package/dist/write-npm-ignore.d.ts +3 -0
  13. package/dist/write-npm-ignore.js +48 -0
  14. package/dist/write-npm-ignore.js.map +1 -0
  15. package/package.json +25 -19
  16. package/exceptions/index.ts +0 -3
  17. package/exceptions/package-tar-filet-not-found.ts +0 -8
  18. package/exceptions/pkg-artifact-not-found.ts +0 -8
  19. package/exceptions/scope-not-found.ts +0 -14
  20. package/index.ts +0 -3
  21. package/pack.cmd.tsx +0 -68
  22. package/pack.task.ts +0 -24
  23. package/package-dependency/index.ts +0 -2
  24. package/package-dependency/package-dependency-factory.ts +0 -71
  25. package/package-dependency/package-dependency.ts +0 -20
  26. package/package-tar/teambit-pkg-0.0.551.tgz +0 -0
  27. package/package.fragment.ts +0 -24
  28. package/package.route.ts +0 -32
  29. package/packer.ts +0 -131
  30. package/pkg-artifact.ts +0 -5
  31. package/pkg.aspect.ts +0 -5
  32. package/pkg.docs.mdx +0 -9
  33. package/pkg.graphql.ts +0 -59
  34. package/pkg.main.runtime.ts +0 -423
  35. package/pkg.service.tsx +0 -39
  36. package/prepare-packages.task.ts +0 -74
  37. package/publish-dry-run.task.ts +0 -44
  38. package/publish.cmd.tsx +0 -57
  39. package/publish.task.ts +0 -33
  40. package/publisher.ts +0 -158
  41. package/tsconfig.json +0 -35
  42. package/types/asset.d.ts +0 -29
  43. package/types/style.d.ts +0 -42
@@ -1,6 +1,9 @@
1
1
  import { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import { Packer } from './packer';
4
+ /**
5
+ * pack components to a .tgz file
6
+ */
4
7
  export declare class PackTask implements BuildTask {
5
8
  readonly aspectId: string;
6
9
  private packer;
@@ -3,8 +3,15 @@ import { Request, Response, Route } from '@teambit/express';
3
3
  import { PkgMain } from './pkg.main.runtime';
4
4
  export declare const routePath = "package";
5
5
  export declare class PackageRoute implements Route {
6
+ /**
7
+ * pkg extension.
8
+ */
6
9
  private pkg;
7
- constructor(pkg: PkgMain);
10
+ constructor(
11
+ /**
12
+ * pkg extension.
13
+ */
14
+ pkg: PkgMain);
8
15
  route: string;
9
16
  method: string;
10
17
  middlewares: ((req: Request, res: Response) => Promise<import("express").Response<any>>)[];
@@ -19,12 +19,30 @@ export interface PackageJsonProps {
19
19
  }
20
20
  export declare type PackageJsonPropsRegistry = SlotRegistry<PackageJsonProps>;
21
21
  export declare type PkgExtensionConfig = {};
22
+ /**
23
+ * Config for variants
24
+ */
22
25
  export declare type ComponentPkgExtensionConfig = {
26
+ /**
27
+ * properties to add to the package.json of the component.
28
+ */
23
29
  packageJson: Record<string, any>;
24
30
  };
31
+ /**
32
+ * Data stored in the component
33
+ */
25
34
  export declare type ComponentPkgExtensionData = {
35
+ /**
36
+ * properties to add to the package.json of the component.
37
+ */
26
38
  packageJsonModification: Record<string, any>;
39
+ /**
40
+ * Final package.json after creating tar file
41
+ */
27
42
  pkgJson?: Record<string, any>;
43
+ /**
44
+ * Checksum of the tar file
45
+ */
28
46
  checksum?: string;
29
47
  };
30
48
  declare type ComponentPackageManifest = {
@@ -41,15 +59,33 @@ declare type VersionPackageManifest = {
41
59
  };
42
60
  };
43
61
  export declare class PkgMain {
62
+ /**
63
+ * logger extension
64
+ */
44
65
  readonly logger: Logger;
66
+ /**
67
+ * pkg extension configuration.
68
+ */
45
69
  readonly config: PkgExtensionConfig;
70
+ /**
71
+ * Registry for changes by other extensions.
72
+ */
46
73
  private packageJsonPropsRegistry;
47
74
  private workspace;
48
75
  private scope;
49
76
  private builder;
77
+ /**
78
+ * A utils class to packing components into tarball
79
+ */
50
80
  private packer;
81
+ /**
82
+ * envs extension.
83
+ */
51
84
  private envs;
52
85
  private componentAspect;
86
+ /**
87
+ * keep it as public. external env might want to register it to the snap pipeline
88
+ */
53
89
  publishTask: PublishTask;
54
90
  static runtime: import("@teambit/harmony").RuntimeDefinition;
55
91
  static dependencies: import("@teambit/harmony").Aspect[];
@@ -67,18 +103,81 @@ export declare class PkgMain {
67
103
  ComponentMain,
68
104
  GraphqlMain
69
105
  ], config: PkgExtensionConfig, [packageJsonPropsRegistry]: [PackageJsonPropsRegistry]): Promise<PkgMain>;
106
+ /**
107
+ * get the package name of a component.
108
+ */
70
109
  getPackageName(component: Component): string;
110
+ /**
111
+ * returns the package path in the /node_modules/ folder
112
+ */
71
113
  getModulePath(component: Component, options?: {
72
114
  absPath?: boolean;
73
115
  }): string;
74
- constructor(logger: Logger, config: PkgExtensionConfig, packageJsonPropsRegistry: PackageJsonPropsRegistry, workspace: Workspace, scope: ScopeMain, builder: BuilderMain, packer: Packer, envs: EnvsMain, componentAspect: ComponentMain, publishTask: PublishTask);
116
+ /**
117
+ *Creates an instance of PkgExtension.
118
+ * @param {PkgExtensionConfig} config
119
+ * @param {PackageJsonPropsRegistry} packageJsonPropsRegistry
120
+ * @param {Packer} packer
121
+ * @memberof PkgExtension
122
+ */
123
+ constructor(
124
+ /**
125
+ * logger extension
126
+ */
127
+ logger: Logger,
128
+ /**
129
+ * pkg extension configuration.
130
+ */
131
+ config: PkgExtensionConfig,
132
+ /**
133
+ * Registry for changes by other extensions.
134
+ */
135
+ packageJsonPropsRegistry: PackageJsonPropsRegistry, workspace: Workspace, scope: ScopeMain, builder: BuilderMain,
136
+ /**
137
+ * A utils class to packing components into tarball
138
+ */
139
+ packer: Packer,
140
+ /**
141
+ * envs extension.
142
+ */
143
+ envs: EnvsMain, componentAspect: ComponentMain,
144
+ /**
145
+ * keep it as public. external env might want to register it to the snap pipeline
146
+ */
147
+ publishTask: PublishTask);
148
+ /**
149
+ * register changes in the package.json
150
+ */
75
151
  registerPackageJsonNewProps(props: PackageJsonProps): void;
152
+ /**
153
+ * Pack a component and generate a tarball suitable for npm registry
154
+ *
155
+ * @param {string} componentId
156
+ * @param {(string | undefined)} scopePath
157
+ * @param {string} outDir
158
+ * @param {boolean} [prefix=false]
159
+ * @param {boolean} [override=false]
160
+ * @param {boolean} [keep=false]
161
+ * @returns {Promise<PackResult>}
162
+ * @memberof PkgExtension
163
+ */
76
164
  packComponent(componentId: string, scopePath: string | undefined, options: PackOptions): Promise<PackResult>;
165
+ /**
166
+ * Merge the configs provided by:
167
+ * 1. envs configured in the component - via getPackageJsonProps method
168
+ * 2. extensions that registered to the registerPackageJsonNewProps slot (and configured for the component)
169
+ * 3. props defined by the user (they are the strongest one)
170
+ */
77
171
  mergePackageJsonProps(component: Component): Promise<PackageJsonProps>;
78
172
  getPackageJsonModifications(component: Component): Record<string, any>;
79
173
  getPkgArtifact(component: Component): Promise<PkgArtifact>;
80
174
  getManifest(component: Component): Promise<ComponentPackageManifest>;
81
175
  private getAllSnapsManifests;
176
+ /**
177
+ * Check if the component should be fetched from bit registry or from another registry
178
+ * This will usually determined by the latest version of the component
179
+ * @param component
180
+ */
82
181
  isPublishedToExternalRegistry(component: Component): boolean;
83
182
  private getComponentBuildData;
84
183
  getSnapManifest(component: Component, snap: Snap): Promise<VersionPackageManifest | undefined>;
@@ -363,7 +363,7 @@ class PkgMain {
363
363
  // we might revise our decision later.
364
364
  // const dryRunTask = new PublishDryRunTask(PkgAspect.id, publisher, packer, logPublisher);
365
365
 
366
- const preparePackagesTask = new (_preparePackages().PreparePackagesTask)(_pkg().PkgAspect.id, logPublisher); // dryRunTask.dependencies = [BuildTaskHelper.serializeId(preparePackagesTask)];
366
+ const preparePackagesTask = new (_preparePackages().PreparePackagesTask)(_pkg().PkgAspect.id, logPublisher, envs); // dryRunTask.dependencies = [BuildTaskHelper.serializeId(preparePackagesTask)];
367
367
 
368
368
  builder.registerBuildTasks([preparePackagesTask]);
369
369
  builder.registerTagTasks([packTask, publishTask]);
@@ -494,11 +494,21 @@ class PkgMain {
494
494
  var _this$envs$calculateE;
495
495
 
496
496
  let newProps = {};
497
+
498
+ const mergeToNewProps = otherProps => {
499
+ const files = [...(newProps.files || []), ...(otherProps.files || [])];
500
+
501
+ const merged = _objectSpread(_objectSpread({}, newProps), otherProps);
502
+
503
+ if (files.length) merged.files = files;
504
+ return merged;
505
+ };
506
+
497
507
  const env = (_this$envs$calculateE = this.envs.calculateEnv(component)) === null || _this$envs$calculateE === void 0 ? void 0 : _this$envs$calculateE.env;
498
508
 
499
509
  if (env !== null && env !== void 0 && env.getPackageJsonProps && typeof env.getPackageJsonProps === 'function') {
500
510
  const propsFromEnv = env.getPackageJsonProps();
501
- newProps = Object.assign(newProps, propsFromEnv);
511
+ newProps = mergeToNewProps(propsFromEnv);
502
512
  }
503
513
 
504
514
  const configuredIds = component.state.aspects.ids;
@@ -507,14 +517,14 @@ class PkgMain {
507
517
  const props = this.packageJsonPropsRegistry.get(extId);
508
518
 
509
519
  if (props) {
510
- newProps = Object.assign(newProps, props);
520
+ newProps = mergeToNewProps(props);
511
521
  }
512
522
  });
513
523
  const currentExtension = component.state.aspects.get(_pkg().PkgAspect.id);
514
524
  const currentConfig = currentExtension === null || currentExtension === void 0 ? void 0 : currentExtension.config;
515
525
 
516
526
  if (currentConfig && currentConfig.packageJson) {
517
- newProps = Object.assign(newProps, currentConfig.packageJson);
527
+ newProps = mergeToNewProps(currentConfig.packageJson);
518
528
  } // Keys not allowed to override
519
529
 
520
530
 
@@ -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","env","calculateEnv","getPackageJsonProps","propsFromEnv","Object","assign","configuredIds","aspects","ids","forEach","extId","get","currentExtension","currentConfig","packageJson","specialKeys","getPackageJsonModifications","currentData","getPkgArtifact","artifacts","getArtifactsVinylByExtension","length","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","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);\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 env = this.envs.calculateEnv(component)?.env;\n if (env?.getPackageJsonProps && typeof env.getPackageJsonProps === 'function') {\n const propsFromEnv = env.getPackageJsonProps();\n newProps = Object.assign(newProps, 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 = Object.assign(newProps, 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 = Object.assign(newProps, 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;;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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,14 +1,31 @@
1
1
  import { BuildContext, BuiltTaskResult, BuildTask } from '@teambit/builder';
2
+ import { EnvsMain } from '@teambit/envs';
2
3
  import { Logger } from '@teambit/logger';
4
+ /**
5
+ * prepare packages for publishing.
6
+ */
3
7
  export declare class PreparePackagesTask implements BuildTask {
4
8
  readonly aspectId: string;
5
9
  private logger;
10
+ private envs;
6
11
  readonly name = "PreparePackages";
7
12
  readonly location = "end";
8
- constructor(aspectId: string, logger: Logger);
13
+ constructor(aspectId: string, logger: Logger, envs: EnvsMain);
9
14
  execute(context: BuildContext): Promise<BuiltTaskResult>;
15
+ private writeNpmIgnoreFile;
16
+ /**
17
+ * remove the source files and copy the dists files
18
+ * into the root of the capsule.
19
+ * this is needed when components import from other components internal paths. without this task,
20
+ * the internal paths are the source, so node will throw an error when trying to use them. this
21
+ * task makes sure that the internal paths point to the consumable code (dists).
22
+ */
10
23
  private executeDistAsRootTask;
11
24
  private removeSourceFiles;
12
25
  private moveDistToRoot;
26
+ /**
27
+ * by default, the "main" prop points to the dist file (e.g. "dist/index./js").
28
+ * here, we have to change it because there is no dist dir anymore.
29
+ */
13
30
  private updatePackageJson;
14
31
  }
@@ -55,24 +55,42 @@ function _path() {
55
55
  return data;
56
56
  }
57
57
 
58
+ function _writeNpmIgnore() {
59
+ const data = require("./write-npm-ignore");
60
+
61
+ _writeNpmIgnore = function () {
62
+ return data;
63
+ };
64
+
65
+ return data;
66
+ }
67
+
58
68
  /**
59
69
  * prepare packages for publishing.
60
70
  */
61
71
  class PreparePackagesTask {
62
- constructor(aspectId, logger) {
72
+ constructor(aspectId, logger, envs) {
63
73
  this.aspectId = aspectId;
64
74
  this.logger = logger;
75
+ this.envs = envs;
65
76
  (0, _defineProperty2().default)(this, "name", 'PreparePackages');
66
77
  (0, _defineProperty2().default)(this, "location", 'end');
67
78
  } // eslint-disable-next-line @typescript-eslint/no-unused-vars
68
79
 
69
80
 
70
81
  async execute(context) {
82
+ await this.writeNpmIgnoreFile(context);
71
83
  const result = {
72
84
  componentsResults: []
73
85
  };
74
86
  return result;
75
87
  }
88
+
89
+ async writeNpmIgnoreFile(context) {
90
+ await Promise.all(context.capsuleNetwork.seedersCapsules.map(async capsule => {
91
+ await (0, _writeNpmIgnore().writeNpmIgnore)(capsule, this.envs);
92
+ }));
93
+ }
76
94
  /**
77
95
  * remove the source files and copy the dists files
78
96
  * into the root of the capsule.
@@ -1 +1 @@
1
- {"version":3,"sources":["prepare-packages.task.ts"],"names":["PreparePackagesTask","constructor","aspectId","logger","execute","context","result","componentsResults","executeDistAsRootTask","env","getCompiler","compilerInstance","distDir","Promise","all","capsuleNetwork","graphCapsules","map","capsule","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"],"mappings":"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","sourcesContent":["import { BuildContext, BuiltTaskResult, BuildTask } from '@teambit/builder';\nimport { Compiler } from '@teambit/compiler';\nimport { Capsule } from '@teambit/isolator';\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';\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) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const result = {\n componentsResults: [],\n };\n\n return result;\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"]}
1
+ {"version":3,"sources":["prepare-packages.task.ts"],"names":["PreparePackagesTask","constructor","aspectId","logger","envs","execute","context","writeNpmIgnoreFile","result","componentsResults","Promise","all","capsuleNetwork","seedersCapsules","map","capsule","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"],"mappings":"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","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"]}
@@ -2,6 +2,9 @@ import { BuildContext, BuiltTaskResult, BuildTask } from '@teambit/builder';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import { Publisher } from './publisher';
4
4
  import { Packer } from './packer';
5
+ /**
6
+ * publish build task is running "publish --dry-run" to avoid later npm errors during export
7
+ */
5
8
  export declare class PublishDryRunTask implements BuildTask {
6
9
  readonly aspectId: string;
7
10
  private publisher;
@@ -1,6 +1,9 @@
1
1
  import { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';
2
2
  import { Logger } from '@teambit/logger';
3
3
  import { Publisher } from './publisher';
4
+ /**
5
+ * publish components by running "npm publish"
6
+ */
4
7
  export declare class PublishTask implements BuildTask {
5
8
  readonly aspectId: string;
6
9
  private publisher;
@@ -21,6 +21,10 @@ export declare class Publisher {
21
21
  private publishOneCapsule;
22
22
  private getTagFlagForPreRelease;
23
23
  private getComponentCapsules;
24
+ /**
25
+ * only components that use pkg extension and configure "publishConfig" with their own registry
26
+ * or custom "name", should be published. ignore the rest.
27
+ */
24
28
  private getIdsToPublish;
25
29
  shouldPublish(extensions: ExtensionDataList): boolean;
26
30
  private getExtraArgsFromConfig;
@@ -0,0 +1,3 @@
1
+ import { EnvsMain } from '@teambit/envs';
2
+ import { Capsule } from '@teambit/isolator';
3
+ export declare function writeNpmIgnore(capsule: Capsule, envs: EnvsMain): Promise<void>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("core-js/modules/es.promise.js");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.writeNpmIgnore = writeNpmIgnore;
11
+
12
+ function _path() {
13
+ const data = require("path");
14
+
15
+ _path = function () {
16
+ return data;
17
+ };
18
+
19
+ return data;
20
+ }
21
+
22
+ function _fsExtra() {
23
+ const data = _interopRequireDefault(require("fs-extra"));
24
+
25
+ _fsExtra = function () {
26
+ return data;
27
+ };
28
+
29
+ return data;
30
+ }
31
+
32
+ async function writeNpmIgnore(capsule, envs) {
33
+ var _env$getNpmIgnore;
34
+
35
+ const env = envs.getEnv(capsule.component).env;
36
+ const npmIgnoreEntries = (_env$getNpmIgnore = env.getNpmIgnore) === null || _env$getNpmIgnore === void 0 ? void 0 : _env$getNpmIgnore.call(env);
37
+
38
+ if (!npmIgnoreEntries || !npmIgnoreEntries.length) {
39
+ return;
40
+ }
41
+
42
+ const NPM_IGNORE_FILE = '.npmignore';
43
+ const npmIgnorePath = (0, _path().join)(capsule.path, NPM_IGNORE_FILE);
44
+ const npmIgnoreEntriesStr = `\n${npmIgnoreEntries.join('\n')}`;
45
+ await _fsExtra().default.appendFile(npmIgnorePath, npmIgnoreEntriesStr);
46
+ }
47
+
48
+ //# sourceMappingURL=write-npm-ignore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["write-npm-ignore.ts"],"names":["writeNpmIgnore","capsule","envs","env","getEnv","component","npmIgnoreEntries","getNpmIgnore","length","NPM_IGNORE_FILE","npmIgnorePath","path","npmIgnoreEntriesStr","join","fs","appendFile"],"mappings":";;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIO,eAAeA,cAAf,CAA8BC,OAA9B,EAAgDC,IAAhD,EAA+E;AAAA;;AACpF,QAAMC,GAAG,GAAGD,IAAI,CAACE,MAAL,CAAYH,OAAO,CAACI,SAApB,EAA+BF,GAA3C;AACA,QAAMG,gBAAgB,wBAAGH,GAAG,CAACI,YAAP,sDAAG,uBAAAJ,GAAG,CAA5B;;AACA,MAAI,CAACG,gBAAD,IAAqB,CAACA,gBAAgB,CAACE,MAA3C,EAAmD;AACjD;AACD;;AACD,QAAMC,eAAe,GAAG,YAAxB;AACA,QAAMC,aAAa,GAAG,kBAAKT,OAAO,CAACU,IAAb,EAAmBF,eAAnB,CAAtB;AACA,QAAMG,mBAAmB,GAAI,KAAIN,gBAAgB,CAACO,IAAjB,CAAsB,IAAtB,CAA4B,EAA7D;AACA,QAAMC,mBAAGC,UAAH,CAAcL,aAAd,EAA6BE,mBAA7B,CAAN;AACD","sourcesContent":["import { join } from 'path';\nimport fs from 'fs-extra';\nimport { EnvsMain, PackageEnv } from '@teambit/envs';\nimport { Capsule } from '@teambit/isolator';\n\nexport async function writeNpmIgnore(capsule: Capsule, envs: EnvsMain): Promise<void> {\n const env = envs.getEnv(capsule.component).env as PackageEnv;\n const npmIgnoreEntries = env.getNpmIgnore?.();\n if (!npmIgnoreEntries || !npmIgnoreEntries.length) {\n return;\n }\n const NPM_IGNORE_FILE = '.npmignore';\n const npmIgnorePath = join(capsule.path, NPM_IGNORE_FILE);\n const npmIgnoreEntriesStr = `\\n${npmIgnoreEntries.join('\\n')}`;\n await fs.appendFile(npmIgnorePath, npmIgnoreEntriesStr);\n}\n"]}