@teambit/pkg 0.0.555 → 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.
@@ -1,71 +0,0 @@
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
- }
@@ -1,20 +0,0 @@
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
@@ -1,24 +0,0 @@
1
- import { Component, ShowFragment } from '@teambit/component';
2
- import { PkgMain } from './pkg.main.runtime';
3
-
4
- export class PackageFragment implements ShowFragment {
5
- constructor(private pkg: PkgMain) {}
6
-
7
- title = 'package name';
8
-
9
- async renderRow(component: Component) {
10
- return {
11
- title: this.title,
12
- content: this.pkg.getPackageName(component),
13
- };
14
- }
15
-
16
- async json(component: Component) {
17
- return {
18
- title: this.title,
19
- json: this.pkg.getPackageName(component),
20
- };
21
- }
22
-
23
- weight = 3;
24
- }
package/package.route.ts DELETED
@@ -1,32 +0,0 @@
1
- import { Request, Response, Route } from '@teambit/express';
2
- import mime from 'mime';
3
-
4
- import { PkgMain } from './pkg.main.runtime';
5
-
6
- export const routePath = `package`;
7
- export class PackageRoute implements Route {
8
- constructor(
9
- /**
10
- * pkg extension.
11
- */
12
- private pkg: PkgMain
13
- ) {}
14
-
15
- route = `/${routePath}`;
16
- method = 'get';
17
-
18
- middlewares = [
19
- async (req: Request, res: Response) => {
20
- // @ts-ignore TODO: @guy please fix.
21
- const component: any = req.component as any;
22
- const file = await this.pkg.getPackageTarFile(component);
23
- // TODO: 404 again how to handle.
24
- if (!file) return res.status(404).jsonp({ error: 'not found' });
25
- const contents = file.contents;
26
- const contentType = mime.getType('.tgz');
27
- res.set('Content-disposition', `attachment; filename=${file.basename}`);
28
- if (contentType) res.set('Content-Type', contentType);
29
- return res.send(contents);
30
- },
31
- ];
32
- }
package/packer.ts DELETED
@@ -1,131 +0,0 @@
1
- import _ from 'lodash';
2
- import { ComponentFactory } from '@teambit/component';
3
- import { ComponentResult, ArtifactDefinition } from '@teambit/builder';
4
- import { Capsule, IsolatorMain } from '@teambit/isolator';
5
- import { ScopeMain } from '@teambit/scope';
6
- import LegacyScope from '@teambit/legacy/dist/scope/scope';
7
- import { Packer as LegacyPacker, PackWriteOptions, PackOptions } from '@teambit/legacy/dist/pack';
8
- import { Logger } from '@teambit/logger';
9
- import pMap from 'p-map';
10
-
11
- // @ts-ignore (for some reason the tsc -w not found this)
12
- import { ScopeNotFound } from './exceptions/scope-not-found';
13
-
14
- export { PackOptions };
15
-
16
- export type PackResult = Omit<ComponentResult, 'component'>;
17
- export type PackResultWithId = PackResult & {
18
- id: string;
19
- };
20
-
21
- const DEFAULT_TAR_DIR_IN_CAPSULE = 'package-tar';
22
- const PACK_CONCURRENCY = 10;
23
- export const TAR_FILE_ARTIFACT_NAME = 'package tar file';
24
-
25
- export class Packer {
26
- legacyPacker: LegacyPacker;
27
- constructor(
28
- private isolator: IsolatorMain,
29
- private logger: Logger,
30
- private host: ComponentFactory,
31
- private scope?: ScopeMain
32
- ) {
33
- this.legacyPacker = new LegacyPacker(this.logger);
34
- }
35
-
36
- async packComponent(
37
- componentId: string,
38
- scopePath: string | undefined,
39
- options: PackOptions
40
- ): Promise<PackResultWithId> {
41
- // By default do not load scope from cache when packing
42
- const loadScopeFromCache =
43
- options && options.loadScopeFromCache !== undefined ? !!options.loadScopeFromCache : false;
44
- const legacyScope = scopePath ? await LegacyScope.load(scopePath, loadScopeFromCache) : this.scope?.legacyScope;
45
- if (!legacyScope) {
46
- throw new ScopeNotFound(scopePath);
47
- }
48
- // Or the scope we are operate on is legacy, or the host (workspace) is legacy
49
- const isLegacyScope = (scopePath && legacyScope.isLegacy) || this.host.isLegacy;
50
-
51
- // Handle legacy
52
- if (isLegacyScope) {
53
- const res = await this.legacyPacker.pack(componentId, legacyScope, options);
54
- // @ts-ignore
55
- return Object.assign({}, res, { id: componentId });
56
- }
57
-
58
- const capsule = await this.getCapsule(componentId, legacyScope);
59
- const res = await this.packCapsule(capsule, options.writeOptions, options.dryRun);
60
-
61
- return Object.assign({}, _.omit(res, ['component']), { id: componentId });
62
- }
63
-
64
- async packMultipleCapsules(
65
- capsules: Capsule[],
66
- writeOptions: PackWriteOptions = { override: true },
67
- dryRun = false,
68
- omitFullTarPath = false
69
- ): Promise<ComponentResult[]> {
70
- // const description = `packing components${dryRun ? ' (dry-run)' : ''}`;
71
- const results = pMap(
72
- capsules,
73
- (capsule) => {
74
- return this.packCapsule(capsule, writeOptions, dryRun, omitFullTarPath);
75
- },
76
- { concurrency: PACK_CONCURRENCY }
77
- );
78
- return results;
79
- }
80
-
81
- async packCapsule(
82
- capsule: Capsule,
83
- writeOptions: PackWriteOptions = { override: true },
84
- dryRun = false,
85
- omitFullTarPath = false
86
- ): Promise<ComponentResult> {
87
- const concreteWriteOpts = writeOptions;
88
- // Set the package-tar as out dir to easily read the tar later
89
- concreteWriteOpts.outDir = concreteWriteOpts.outDir ?? DEFAULT_TAR_DIR_IN_CAPSULE;
90
- const packResult = await this.legacyPacker.npmPack(
91
- capsule.path,
92
- concreteWriteOpts.outDir || capsule.path,
93
- concreteWriteOpts.override,
94
- dryRun
95
- );
96
- const component = capsule.component;
97
- const fieldsToRemove: string[] = [];
98
- if (omitFullTarPath) {
99
- fieldsToRemove.push('tarPath');
100
- }
101
- // TODO: @gilad please make sure to fix this type error now that I added lodash types
102
- const metadata = _(packResult.metadata).omitBy(_.isUndefined).omit(fieldsToRemove).value() as any;
103
-
104
- return {
105
- component,
106
- metadata,
107
- errors: packResult.errors,
108
- warnings: packResult.warnings,
109
- startTime: packResult.startTime,
110
- endTime: packResult.endTime,
111
- };
112
- }
113
-
114
- getArtifactDefInCapsule(outDir?: string): ArtifactDefinition {
115
- const rootDir = outDir || DEFAULT_TAR_DIR_IN_CAPSULE;
116
- const def: ArtifactDefinition = {
117
- name: TAR_FILE_ARTIFACT_NAME,
118
- globPatterns: [`${rootDir}/*.tgz`],
119
- };
120
- return def;
121
- }
122
-
123
- private async getCapsule(componentIdStr: string, legacyScope: LegacyScope): Promise<Capsule> {
124
- const componentId = await this.host.resolveComponentId(componentIdStr);
125
- const network = await this.isolator.isolateComponents([componentId], { baseDir: this.host.path }, legacyScope);
126
- const capsule = network.seedersCapsules.getCapsule(componentId);
127
-
128
- if (!capsule) throw new Error(`capsule not found for ${componentId}`);
129
- return capsule;
130
- }
131
- }
package/pkg-artifact.ts DELETED
@@ -1,5 +0,0 @@
1
- import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
2
-
3
- export class PkgArtifact {
4
- constructor(private artifacts: AbstractVinyl[]) {}
5
- }
package/pkg.aspect.ts DELETED
@@ -1,5 +0,0 @@
1
- import { Aspect } from '@teambit/harmony';
2
-
3
- export const PkgAspect = Aspect.create({
4
- id: 'teambit.pkg/pkg',
5
- });
package/pkg.docs.mdx DELETED
@@ -1,9 +0,0 @@
1
- ---
2
- displayName: PKG
3
- description: Generates, packs and publishes component packages
4
- labels: ['packages', 'aspect', 'pkg']
5
- ---
6
-
7
- import { Pkg } from '@teambit/pkg.aspect-docs.pkg';
8
-
9
- <Pkg />
package/pkg.graphql.ts DELETED
@@ -1,59 +0,0 @@
1
- import { Component } from '@teambit/component';
2
- import { Schema } from '@teambit/graphql';
3
- import gql from 'graphql-tag';
4
-
5
- import { PkgMain } from './pkg.main.runtime';
6
-
7
- export function pkgSchema(pkg: PkgMain): Schema {
8
- return {
9
- typeDefs: gql`
10
- extend type Component {
11
- packageManifest: PackageManifest
12
-
13
- # package name of the component.
14
- packageName: String!
15
- }
16
-
17
- type TarDist {
18
- tarball: String
19
- shasum: String
20
- }
21
-
22
- type VersionsPackageManifest {
23
- name: String
24
- version: String
25
- main: String
26
- dependencies: JSONObject
27
- devDependencies: JSONObject
28
- peerDependencies: JSONObject
29
- scripts: JSONObject
30
- dist: TarDist
31
- }
32
-
33
- type PackageManifest {
34
- name: String
35
- distTags: JSONObject
36
- externalRegistry: Boolean
37
- versions(version: String): [VersionsPackageManifest]
38
- }
39
- `,
40
- resolvers: {
41
- Component: {
42
- packageName: (component: Component) => {
43
- return pkg.getPackageName(component);
44
- },
45
- packageManifest: (component: Component) => {
46
- return pkg.getManifest(component);
47
- },
48
- },
49
- PackageManifest: {
50
- versions: (parent, { version }) => {
51
- if (version) {
52
- return parent.versions.filter((v) => v.version === version);
53
- }
54
- return parent.versions;
55
- },
56
- },
57
- },
58
- };
59
- }