@teambit/pkg 1.0.107 → 1.0.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exceptions/scope-not-found.d.ts +2 -2
- package/dist/pack.cmd.d.ts +2 -2
- package/dist/pack.cmd.js +3 -4
- package/dist/pack.cmd.js.map +1 -1
- package/dist/package-generator.d.ts +1 -1
- package/dist/packer.d.ts +6 -6
- package/dist/packer.js +1 -2
- package/dist/packer.js.map +1 -1
- package/dist/pkg.composition.d.ts +2 -2
- package/dist/pkg.main.runtime.d.ts +8 -8
- package/dist/pkg.main.runtime.js +18 -22
- package/dist/pkg.main.runtime.js.map +1 -1
- package/dist/pkg.service.d.ts +4 -4
- package/dist/pkg.service.js +3 -3
- package/dist/pkg.service.js.map +1 -1
- package/dist/pkg.ui.runtime.js +4 -4
- package/dist/pkg.ui.runtime.js.map +1 -1
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/dist/publish.cmd.d.ts +1 -1
- package/dist/publish.cmd.js +2 -3
- package/dist/publish.cmd.js.map +1 -1
- package/dist/publisher.d.ts +1 -1
- package/dist/publisher.js +4 -6
- package/dist/publisher.js.map +1 -1
- package/dist/write-npm-ignore.js +1 -2
- package/dist/write-npm-ignore.js.map +1 -1
- package/index.ts +12 -0
- package/pack.task.ts +27 -0
- package/package-env-type.ts +9 -0
- package/package-generator.ts +33 -0
- package/package.fragment.ts +24 -0
- package/package.json +29 -36
- package/package.route.ts +32 -0
- package/packer.ts +206 -0
- package/pkg-artifact.ts +5 -0
- package/pkg.aspect.ts +7 -0
- package/pkg.graphql.ts +59 -0
- package/pkg.main.runtime.ts +496 -0
- package/prepare-packages.task.ts +85 -0
- package/publish-dry-run.task.ts +44 -0
- package/publish.task.ts +33 -0
- package/publisher.ts +153 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
- package/write-npm-ignore.ts +20 -0
package/dist/pkg.service.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { EnvService, EnvDefinition, Env, EnvContext, ServiceTransformationMap, GetNpmIgnoreContext } from '@teambit/envs';
|
|
3
3
|
import { PackageJsonProps } from './pkg.main.runtime';
|
|
4
|
-
export
|
|
4
|
+
export type PkgDescriptor = {
|
|
5
5
|
id: string;
|
|
6
6
|
displayName: string;
|
|
7
7
|
config?: string;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
type PkgTransformationMap = ServiceTransformationMap & {
|
|
10
10
|
getPackageJsonProps: () => PackageJsonProps;
|
|
11
11
|
getNpmIgnore: (npmIgnoreContext?: GetNpmIgnoreContext) => string[];
|
|
12
12
|
};
|
|
13
13
|
export declare class PkgService implements EnvService<{}, PkgDescriptor> {
|
|
14
14
|
name: string;
|
|
15
|
-
render(env: EnvDefinition): Promise<
|
|
15
|
+
render(env: EnvDefinition): Promise<JSX.Element>;
|
|
16
16
|
transform(env: Env, context: EnvContext): PkgTransformationMap | undefined;
|
|
17
17
|
getDescriptor(env: EnvDefinition): PkgDescriptor | undefined;
|
|
18
18
|
}
|
package/dist/pkg.service.js
CHANGED
|
@@ -36,17 +36,17 @@ class PkgService {
|
|
|
36
36
|
async render(env) {
|
|
37
37
|
const descriptor = this.getDescriptor(env);
|
|
38
38
|
return /*#__PURE__*/_react().default.createElement(_ink().Text, {
|
|
39
|
-
key: descriptor
|
|
39
|
+
key: descriptor?.id
|
|
40
40
|
}, /*#__PURE__*/_react().default.createElement(_ink().Text, {
|
|
41
41
|
color: "cyan"
|
|
42
|
-
}, "configured package.json properties: "), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null,
|
|
42
|
+
}, "configured package.json properties: "), /*#__PURE__*/_react().default.createElement(_ink().Newline, null), /*#__PURE__*/_react().default.createElement(_ink().Text, null, descriptor?.config && (0, _cliHighlight().default)(descriptor?.config, {
|
|
43
43
|
language: 'javascript',
|
|
44
44
|
ignoreIllegals: true
|
|
45
45
|
})), /*#__PURE__*/_react().default.createElement(_ink().Newline, null));
|
|
46
46
|
}
|
|
47
47
|
transform(env, context) {
|
|
48
48
|
// Old env
|
|
49
|
-
if (!
|
|
49
|
+
if (!env?.package) return undefined;
|
|
50
50
|
const packageGenerator = env.package()(context);
|
|
51
51
|
return {
|
|
52
52
|
getPackageJsonProps: () => packageGenerator.packageJsonProps,
|
package/dist/pkg.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireDefault","require","_ink","_cliHighlight","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PkgService","constructor","render","env","descriptor","getDescriptor","createElement","Text","id","color","Newline","config","highlight","language","ignoreIllegals","transform","context","package","undefined","packageGenerator","getPackageJsonProps","packageJsonProps","getNpmIgnore","npmIgnore","props","name","JSON","stringify","displayName","exports"],"sources":["pkg.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport {\n EnvService,\n EnvDefinition,\n Env,\n EnvContext,\n ServiceTransformationMap,\n GetNpmIgnoreContext,\n} from '@teambit/envs';\nimport highlight from 'cli-highlight';\nimport { PackageJsonProps } from './pkg.main.runtime';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\ntype PkgTransformationMap = ServiceTransformationMap & {\n getPackageJsonProps: () => PackageJsonProps;\n getNpmIgnore: (npmIgnoreContext?: GetNpmIgnoreContext) => string[];\n};\n\nexport class PkgService implements EnvService<{}, PkgDescriptor> {\n name = 'Pkg';\n\n async render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured package.json properties: </Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, context: EnvContext): PkgTransformationMap | undefined {\n // Old env\n if (!env?.package) return undefined;\n const packageGenerator = env.package()(context);\n\n return {\n getPackageJsonProps: () => packageGenerator.packageJsonProps,\n // TODO: somehow handle context here? used in the aspect env\n getNpmIgnore: () => packageGenerator.npmIgnore,\n };\n }\n\n getDescriptor(env: EnvDefinition): PkgDescriptor | undefined {\n if (!env.env.getPackageJsonProps) return undefined;\n const props = env.env.getPackageJsonProps();\n return {\n id: this.name,\n config: props ? JSON.stringify(props, null, 2) : undefined,\n displayName: this.name,\n };\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,KAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,SAAAI,cAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAc/B,MAAMW,UAAU,CAA0C;EAAAC,YAAA;IAAArB,eAAA,eACxD,KAAK;EAAA;EAEZ,MAAMsB,MAAMA,CAACC,GAAkB,EAAE;IAC/B,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;IAE1C,oBACEhC,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAgC,IAAI;MAAC1B,GAAG,EAAEuB,UAAU,
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_ink","_cliHighlight","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PkgService","constructor","render","env","descriptor","getDescriptor","createElement","Text","id","color","Newline","config","highlight","language","ignoreIllegals","transform","context","package","undefined","packageGenerator","getPackageJsonProps","packageJsonProps","getNpmIgnore","npmIgnore","props","name","JSON","stringify","displayName","exports"],"sources":["pkg.service.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, Newline } from 'ink';\nimport {\n EnvService,\n EnvDefinition,\n Env,\n EnvContext,\n ServiceTransformationMap,\n GetNpmIgnoreContext,\n} from '@teambit/envs';\nimport highlight from 'cli-highlight';\nimport { PackageJsonProps } from './pkg.main.runtime';\n\nexport type PkgDescriptor = {\n id: string;\n displayName: string;\n config?: string;\n};\n\ntype PkgTransformationMap = ServiceTransformationMap & {\n getPackageJsonProps: () => PackageJsonProps;\n getNpmIgnore: (npmIgnoreContext?: GetNpmIgnoreContext) => string[];\n};\n\nexport class PkgService implements EnvService<{}, PkgDescriptor> {\n name = 'Pkg';\n\n async render(env: EnvDefinition) {\n const descriptor = this.getDescriptor(env);\n\n return (\n <Text key={descriptor?.id}>\n <Text color=\"cyan\">configured package.json properties: </Text>\n <Newline />\n <Text>\n {descriptor?.config && highlight(descriptor?.config, { language: 'javascript', ignoreIllegals: true })}\n </Text>\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, context: EnvContext): PkgTransformationMap | undefined {\n // Old env\n if (!env?.package) return undefined;\n const packageGenerator = env.package()(context);\n\n return {\n getPackageJsonProps: () => packageGenerator.packageJsonProps,\n // TODO: somehow handle context here? used in the aspect env\n getNpmIgnore: () => packageGenerator.npmIgnore,\n };\n }\n\n getDescriptor(env: EnvDefinition): PkgDescriptor | undefined {\n if (!env.env.getPackageJsonProps) return undefined;\n const props = env.env.getPackageJsonProps();\n return {\n id: this.name,\n config: props ? JSON.stringify(props, null, 2) : undefined,\n displayName: this.name,\n };\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,KAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AASA,SAAAI,cAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsC,SAAAC,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAc/B,MAAMW,UAAU,CAA0C;EAAAC,YAAA;IAAArB,eAAA,eACxD,KAAK;EAAA;EAEZ,MAAMsB,MAAMA,CAACC,GAAkB,EAAE;IAC/B,MAAMC,UAAU,GAAG,IAAI,CAACC,aAAa,CAACF,GAAG,CAAC;IAE1C,oBACEhC,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAgC,IAAI;MAAC1B,GAAG,EAAEuB,UAAU,EAAEI;IAAG,gBACxBrC,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAgC,IAAI;MAACE,KAAK,EAAC;IAAM,GAAC,sCAA0C,CAAC,eAC9DtC,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAmC,OAAO,MAAE,CAAC,eACXvC,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAgC,IAAI,QACFH,UAAU,EAAEO,MAAM,IAAI,IAAAC,uBAAS,EAACR,UAAU,EAAEO,MAAM,EAAE;MAAEE,QAAQ,EAAE,YAAY;MAAEC,cAAc,EAAE;IAAK,CAAC,CACjG,CAAC,eACP3C,MAAA,GAAAQ,OAAA,CAAA2B,aAAA,CAAC/B,IAAA,GAAAmC,OAAO,MAAE,CACN,CAAC;EAEX;EAEAK,SAASA,CAACZ,GAAQ,EAAEa,OAAmB,EAAoC;IACzE;IACA,IAAI,CAACb,GAAG,EAAEc,OAAO,EAAE,OAAOC,SAAS;IACnC,MAAMC,gBAAgB,GAAGhB,GAAG,CAACc,OAAO,CAAC,CAAC,CAACD,OAAO,CAAC;IAE/C,OAAO;MACLI,mBAAmB,EAAEA,CAAA,KAAMD,gBAAgB,CAACE,gBAAgB;MAC5D;MACAC,YAAY,EAAEA,CAAA,KAAMH,gBAAgB,CAACI;IACvC,CAAC;EACH;EAEAlB,aAAaA,CAACF,GAAkB,EAA6B;IAC3D,IAAI,CAACA,GAAG,CAACA,GAAG,CAACiB,mBAAmB,EAAE,OAAOF,SAAS;IAClD,MAAMM,KAAK,GAAGrB,GAAG,CAACA,GAAG,CAACiB,mBAAmB,CAAC,CAAC;IAC3C,OAAO;MACLZ,EAAE,EAAE,IAAI,CAACiB,IAAI;MACbd,MAAM,EAAEa,KAAK,GAAGE,IAAI,CAACC,SAAS,CAACH,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAGN,SAAS;MAC1DU,WAAW,EAAE,IAAI,CAACH;IACpB,CAAC;EACH;AACF;AAACI,OAAA,CAAA7B,UAAA,GAAAA,UAAA"}
|
package/dist/pkg.ui.runtime.js
CHANGED
|
@@ -58,8 +58,8 @@ class PkgUI {
|
|
|
58
58
|
options,
|
|
59
59
|
componentModel
|
|
60
60
|
}) => {
|
|
61
|
-
const packageName =
|
|
62
|
-
const latest =
|
|
61
|
+
const packageName = componentModel?.packageName || packageNameFromProps;
|
|
62
|
+
const latest = componentModel?.latest || latestFromProps;
|
|
63
63
|
const registry = packageName.split('/')[0];
|
|
64
64
|
const packageVersion = componentId.version === latest ? '' : `@${this.compUI.formatToInstallableVersion(componentId.version)}`;
|
|
65
65
|
return {
|
|
@@ -69,13 +69,13 @@ class PkgUI {
|
|
|
69
69
|
},
|
|
70
70
|
src: "https://static.bit.dev/brands/logo-npm-new.svg"
|
|
71
71
|
}),
|
|
72
|
-
Component: !
|
|
72
|
+
Component: !options?.hide ? /*#__PURE__*/_react().default.createElement(_uiFoundationUiUseBox().Install, {
|
|
73
73
|
config: `npm config set '${registry}:registry' https://node-registry.bit.cloud`,
|
|
74
74
|
componentName: componentId.name,
|
|
75
75
|
packageManager: "npm",
|
|
76
76
|
copyString: `npm i ${packageName}${packageVersion}`,
|
|
77
77
|
registryName: registry,
|
|
78
|
-
isInstallable: !
|
|
78
|
+
isInstallable: !options?.disableInstall
|
|
79
79
|
}) : null,
|
|
80
80
|
order: 30
|
|
81
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_uiFoundationUiUseBox","_component","_pkg","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PkgUI","provider","componentUI","pkg","registerConsumeMethod","npmConsumeMethod","constructor","compUI","packageName","packageNameFromProps","latest","latestFromProps","id","componentId","options","componentModel","registry","split","packageVersion","version","formatToInstallableVersion","Title","createElement","style","width","src","Component","hide","Install","config","componentName","name","packageManager","copyString","registryName","isInstallable","disableInstall","order","exports","UIRuntime","ComponentAspect","_default","PkgAspect","addRuntime"],"sources":["pkg.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { Install } from '@teambit/ui-foundation.ui.use-box.menu';\nimport ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';\nimport { PkgAspect } from './pkg.aspect';\n\nexport class PkgUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const pkg = new PkgUI(componentUI);\n componentUI.registerConsumeMethod(pkg.npmConsumeMethod);\n return pkg;\n }\n\n constructor(private compUI: ComponentUI) {}\n\n private npmConsumeMethod: ConsumePlugin = ({\n packageName: packageNameFromProps,\n latest: latestFromProps,\n id: componentId,\n options,\n componentModel,\n }) => {\n const packageName = componentModel?.packageName || packageNameFromProps;\n const latest = componentModel?.latest || latestFromProps;\n\n const registry = packageName.split('/')[0];\n\n const packageVersion =\n componentId.version === latest ? '' : `@${this.compUI.formatToInstallableVersion(componentId.version as string)}`;\n\n return {\n Title: <img style={{ width: '30px' }} src=\"https://static.bit.dev/brands/logo-npm-new.svg\" />,\n Component: !options?.hide ? (\n <Install\n config={`npm config set '${registry}:registry' https://node-registry.bit.cloud`}\n componentName={componentId.name}\n packageManager=\"npm\"\n copyString={`npm i ${packageName}${packageVersion}`}\n registryName={registry}\n isInstallable={!options?.disableInstall}\n />\n ) : null,\n order: 30,\n };\n };\n}\n\nexport default PkgUI;\n\nPkgAspect.addRuntime(PkgUI);\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,IAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,GAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,sBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,qBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,WAAA;EAAA,MAAAL,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAG,UAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,KAAA;EAAA,MAAAN,IAAA,GAAAE,OAAA;EAAAI,IAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAyC,SAAAC,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,gBAAAH,GAAA,EAAAI,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAJ,GAAA,IAAAO,MAAA,CAAAC,cAAA,CAAAR,GAAA,EAAAI,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAI,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAX,GAAA,CAAAI,GAAA,IAAAC,KAAA,WAAAL,GAAA;AAAA,SAAAM,eAAAM,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAF,CAAA,uCAAAC,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAF,CAAA,EAAAI,CAAA,2BAAAJ,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAK,CAAA,GAAAL,CAAA,CAAAM,MAAA,CAAAC,WAAA,kBAAAF,CAAA,QAAAJ,CAAA,GAAAI,CAAA,CAAAG,IAAA,CAAAR,CAAA,EAAAI,CAAA,uCAAAH,CAAA,SAAAA,CAAA,YAAAQ,SAAA,yEAAAL,CAAA,GAAAD,MAAA,GAAAO,MAAA,EAAAV,CAAA;AAElC,MAAMW,KAAK,CAAC;EAKjB,aAAaC,QAAQA,CAAC,CAACC,WAAW,CAAgB,EAAE;IAClD,MAAMC,GAAG,GAAG,IAAIH,KAAK,CAACE,WAAW,CAAC;IAClCA,WAAW,CAACE,qBAAqB,CAACD,GAAG,CAACE,gBAAgB,CAAC;IACvD,OAAOF,GAAG;EACZ;EAEAG,WAAWA,CAASC,MAAmB,EAAE;IAAA,KAArBA,MAAmB,GAAnBA,MAAmB;IAAA3B,eAAA,2BAEG,CAAC;MACzC4B,WAAW,EAAEC,oBAAoB;MACjCC,MAAM,EAAEC,eAAe;MACvBC,EAAE,EAAEC,WAAW;MACfC,OAAO;MACPC;IACF,CAAC,KAAK;MACJ,MAAMP,WAAW,
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_ui","_uiFoundationUiUseBox","_component","_pkg","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PkgUI","provider","componentUI","pkg","registerConsumeMethod","npmConsumeMethod","constructor","compUI","packageName","packageNameFromProps","latest","latestFromProps","id","componentId","options","componentModel","registry","split","packageVersion","version","formatToInstallableVersion","Title","createElement","style","width","src","Component","hide","Install","config","componentName","name","packageManager","copyString","registryName","isInstallable","disableInstall","order","exports","UIRuntime","ComponentAspect","_default","PkgAspect","addRuntime"],"sources":["pkg.ui.runtime.tsx"],"sourcesContent":["import React from 'react';\nimport { UIRuntime } from '@teambit/ui';\nimport { Install } from '@teambit/ui-foundation.ui.use-box.menu';\nimport ComponentAspect, { ComponentUI, ConsumePlugin } from '@teambit/component';\nimport { PkgAspect } from './pkg.aspect';\n\nexport class PkgUI {\n static runtime = UIRuntime;\n\n static dependencies = [ComponentAspect];\n\n static async provider([componentUI]: [ComponentUI]) {\n const pkg = new PkgUI(componentUI);\n componentUI.registerConsumeMethod(pkg.npmConsumeMethod);\n return pkg;\n }\n\n constructor(private compUI: ComponentUI) {}\n\n private npmConsumeMethod: ConsumePlugin = ({\n packageName: packageNameFromProps,\n latest: latestFromProps,\n id: componentId,\n options,\n componentModel,\n }) => {\n const packageName = componentModel?.packageName || packageNameFromProps;\n const latest = componentModel?.latest || latestFromProps;\n\n const registry = packageName.split('/')[0];\n\n const packageVersion =\n componentId.version === latest ? '' : `@${this.compUI.formatToInstallableVersion(componentId.version as string)}`;\n\n return {\n Title: <img style={{ width: '30px' }} src=\"https://static.bit.dev/brands/logo-npm-new.svg\" />,\n Component: !options?.hide ? (\n <Install\n config={`npm config set '${registry}:registry' https://node-registry.bit.cloud`}\n componentName={componentId.name}\n packageManager=\"npm\"\n copyString={`npm i ${packageName}${packageVersion}`}\n registryName={registry}\n isInstallable={!options?.disableInstall}\n />\n ) : null,\n order: 30,\n };\n };\n}\n\nexport default PkgUI;\n\nPkgAspect.addRuntime(PkgUI);\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pkg_pkg@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pkg_pkg@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pkg_pkg@1.0.108/dist/pkg.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pkg_pkg@1.0.108/dist/pkg.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/dist/publish.cmd.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentResult } from '@teambit/builder';
|
|
2
2
|
import { Command, CommandOptions } from '@teambit/cli';
|
|
3
3
|
import { Publisher, PublisherOptions } from './publisher';
|
|
4
|
-
|
|
4
|
+
type PublishArgs = [string];
|
|
5
5
|
export declare class PublishCmd implements Command {
|
|
6
6
|
private publisher;
|
|
7
7
|
name: string;
|
package/dist/publish.cmd.js
CHANGED
|
@@ -45,11 +45,10 @@ class PublishCmd {
|
|
|
45
45
|
const output = publishResults.map(publishResult => {
|
|
46
46
|
const compName = publishResult.component.id.toString();
|
|
47
47
|
const getData = () => {
|
|
48
|
-
|
|
49
|
-
if ((_publishResult$errors = publishResult.errors) !== null && _publishResult$errors !== void 0 && _publishResult$errors.length) {
|
|
48
|
+
if (publishResult.errors?.length) {
|
|
50
49
|
return _chalk().default.red(publishResult.errors.join('\n'));
|
|
51
50
|
}
|
|
52
|
-
return _chalk().default.green(
|
|
51
|
+
return _chalk().default.green(publishResult.metadata?.publishedPackage || '');
|
|
53
52
|
};
|
|
54
53
|
return `${_chalk().default.bold(compName)}\n${getData()}\n`;
|
|
55
54
|
}).join('\n');
|
package/dist/publish.cmd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_constants","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PublishCmd","constructor","publisher","name","description","COMPONENT_PATTERN_HELP","report","args","options","result","json","publishResults","length","publishOrDryRun","dryRun","title","chalk","white","bold","output","map","publishResult","compName","component","id","toString","getData","
|
|
1
|
+
{"version":3,"names":["_chalk","data","_interopRequireDefault","require","_constants","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","PublishCmd","constructor","publisher","name","description","COMPONENT_PATTERN_HELP","report","args","options","result","json","publishResults","length","publishOrDryRun","dryRun","title","chalk","white","bold","output","map","publishResult","compName","component","id","toString","getData","errors","red","join","green","metadata","publishedPackage","pattern","packResult","publish","code","exports"],"sources":["publish.cmd.tsx"],"sourcesContent":["import { ComponentResult } from '@teambit/builder';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\n\nimport { Publisher, PublisherOptions } from './publisher';\n\ntype PublishArgs = [string];\n\nexport class PublishCmd implements Command {\n name = 'publish <component-pattern>';\n description = 'publish components to npm (npm publish)';\n arguments = [\n {\n name: 'component-pattern',\n description: COMPONENT_PATTERN_HELP,\n },\n ];\n options = [\n ['d', 'dry-run', 'npm publish --dry-run'],\n ['', 'allow-staged', 'allow publishing components that were not exported yet (not recommended)'],\n ['j', 'json', 'return the output as JSON'],\n ] as CommandOptions;\n alias = '';\n private = true;\n group = 'collaborate';\n\n constructor(private publisher: Publisher) {}\n\n async report(args: PublishArgs, options: PublisherOptions) {\n const result = await this.json(args, options);\n const publishResults: ComponentResult[] = result.data;\n if (!publishResults.length) return 'no components candidates found to publish';\n\n const publishOrDryRun = options.dryRun ? 'dry-run' : 'published';\n const title = chalk.white.bold(`successfully ${publishOrDryRun} the following components\\n`);\n const output = publishResults\n .map((publishResult) => {\n const compName = publishResult.component.id.toString();\n const getData = () => {\n if (publishResult.errors?.length) {\n return chalk.red(publishResult.errors.join('\\n'));\n }\n return chalk.green((publishResult.metadata?.publishedPackage as string) || '');\n };\n return `${chalk.bold(compName)}\\n${getData()}\\n`;\n })\n .join('\\n');\n return title + output;\n }\n\n async json([pattern]: PublishArgs, options: PublisherOptions): Promise<{ data: ComponentResult[]; code: number }> {\n const packResult = await this.publisher.publish(pattern, options);\n return {\n data: packResult,\n code: 0,\n };\n }\n}\n"],"mappings":"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"}
|
package/dist/publisher.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Logger } from '@teambit/logger';
|
|
|
4
4
|
import { Workspace } from '@teambit/workspace';
|
|
5
5
|
import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
|
|
6
6
|
import { Scope } from '@teambit/legacy/dist/scope';
|
|
7
|
-
export
|
|
7
|
+
export type PublisherOptions = {
|
|
8
8
|
dryRun?: boolean;
|
|
9
9
|
allowStaged?: boolean;
|
|
10
10
|
};
|
package/dist/publisher.js
CHANGED
|
@@ -83,7 +83,7 @@ class Publisher {
|
|
|
83
83
|
if (this.options.dryRun) publishParams.push('--dry-run');
|
|
84
84
|
publishParams.push(...this.getTagFlagForPreRelease(capsule.component.id));
|
|
85
85
|
const extraArgs = this.getExtraArgsFromConfig(capsule.component);
|
|
86
|
-
if (extraArgs && Array.isArray(extraArgs) && extraArgs
|
|
86
|
+
if (extraArgs && Array.isArray(extraArgs) && extraArgs?.length) {
|
|
87
87
|
const extraArgsSplit = extraArgs.map(arg => arg.split(' ')).flat();
|
|
88
88
|
publishParams.push(...extraArgsSplit);
|
|
89
89
|
}
|
|
@@ -150,17 +150,15 @@ class Publisher {
|
|
|
150
150
|
|
|
151
151
|
// TODO: consider using isPublishedToExternalRegistry from pkg.main.runtime (need to send it a component not extensions)
|
|
152
152
|
shouldPublish(extensions) {
|
|
153
|
-
var _config$packageJson, _config$packageJson2;
|
|
154
153
|
const pkgExt = extensions.findExtension(_pkg().PkgAspect.id);
|
|
155
154
|
if (!pkgExt) return false;
|
|
156
155
|
const config = pkgExt.config;
|
|
157
|
-
if (config
|
|
158
|
-
return
|
|
156
|
+
if (config?.avoidPublishToNPM) return false;
|
|
157
|
+
return config?.packageJson?.name || config?.packageJson?.publishConfig;
|
|
159
158
|
}
|
|
160
159
|
getExtraArgsFromConfig(component) {
|
|
161
|
-
var _pkgExt$config;
|
|
162
160
|
const pkgExt = component.config.extensions.findExtension(_pkg().PkgAspect.id);
|
|
163
|
-
return pkgExt
|
|
161
|
+
return pkgExt?.config?.packageManagerPublishArgs;
|
|
164
162
|
}
|
|
165
163
|
async throwForNonStagedOrTaggedComponents(componentIds) {
|
|
166
164
|
const idsWithoutScope = componentIds.filter(id => !this.scope.isExported(id));
|
package/dist/publisher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_componentId","data","require","_bitError","_fsExtra","_interopRequireDefault","_pMapSeries","_execa","_pkg","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","Publisher","constructor","isolator","logger","scope","workspace","options","publish","componentPattern","componentIds","idsByPattern","capsules","getComponentCapsules","publishMultipleCapsules","description","dryRun","longProcessLogger","createLongProcessLogger","length","results","mapSeries","capsule","logProgress","component","id","toString","publishOneCapsule","end","startTime","Date","now","publishParams","push","getTagFlagForPreRelease","extraArgs","getExtraArgsFromConfig","Array","isArray","extraArgsSplit","map","arg","split","flat","publishParamsStr","join","cwd","path","componentIdStr","errors","metadata","off","execa","packageManager","stdio","on","debug","pkg","fsx","readJSON","publishedPackage","name","version","err","errorMsg","error","endTime","preReleaseData","getVersionPreReleaseData","maybeIdentifier","idsToPublish","getIdsToPublish","componentIdsToPublish","resolveMultipleComponentIds","network","isolateComponents","packageManagerConfigRootDir","seedersCapsules","throwForNonStagedOrTaggedComponents","ids","ComponentIdList","fromArray","components","getComponentsAndVersions","filter","c","shouldPublish","extensions","toComponentId","changeVersion","versionStr","_config$packageJson","_config$packageJson2","pkgExt","findExtension","PkgAspect","config","avoidPublishToNPM","packageJson","publishConfig","_pkgExt$config","packageManagerPublishArgs","idsWithoutScope","isExported","allowStaged","BitError","missingFromScope","Promise","all","inScope","isComponentInScope","exports"],"sources":["publisher.ts"],"sourcesContent":["import { ComponentResult, TaskMetadata } from '@teambit/builder';\nimport { Component, ComponentID } from '@teambit/component';\nimport { Capsule, IsolatorMain } from '@teambit/isolator';\nimport { Logger } from '@teambit/logger';\nimport { Workspace } from '@teambit/workspace';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport fsx from 'fs-extra';\nimport mapSeries from 'p-map-series';\nimport execa from 'execa';\nimport { PkgAspect } from './pkg.aspect';\nimport { PkgExtensionConfig } from './pkg.main.runtime';\n\nexport type PublisherOptions = {\n dryRun?: boolean;\n allowStaged?: boolean;\n};\n\nexport class Publisher {\n packageManager = 'npm'; // @todo: decide if this is mandatory or using the workspace settings\n constructor(\n private isolator: IsolatorMain,\n private logger: Logger,\n private scope: Scope,\n private workspace: Workspace,\n public options: PublisherOptions = {}\n ) {}\n\n async publish(componentPattern: string, options: PublisherOptions): Promise<ComponentResult[]> {\n const componentIds = await this.workspace.idsByPattern(componentPattern);\n this.options = options;\n const capsules = await this.getComponentCapsules(componentIds);\n // const capsules = await this.getComponentCapsulesFromScope(componentIds);\n return this.publishMultipleCapsules(capsules);\n }\n\n public async publishMultipleCapsules(capsules: Capsule[]): Promise<ComponentResult[]> {\n const description = `publish components${this.options.dryRun ? ' (dry-run)' : ''}`;\n const longProcessLogger = this.logger.createLongProcessLogger(description, capsules.length);\n const results = mapSeries(capsules, (capsule) => {\n longProcessLogger.logProgress(capsule.component.id.toString());\n return this.publishOneCapsule(capsule);\n });\n longProcessLogger.end();\n return results;\n }\n\n private async publishOneCapsule(capsule: Capsule): Promise<ComponentResult> {\n const startTime = Date.now();\n const publishParams = ['publish'];\n if (this.options.dryRun) publishParams.push('--dry-run');\n publishParams.push(...this.getTagFlagForPreRelease(capsule.component.id));\n const extraArgs = this.getExtraArgsFromConfig(capsule.component);\n if (extraArgs && Array.isArray(extraArgs) && extraArgs?.length) {\n const extraArgsSplit = extraArgs.map((arg) => arg.split(' ')).flat();\n publishParams.push(...extraArgsSplit);\n }\n const publishParamsStr = publishParams.join(' ');\n const cwd = capsule.path;\n const componentIdStr = capsule.id.toString();\n const errors: string[] = [];\n let metadata: TaskMetadata = {};\n try {\n this.logger.off();\n // @todo: once capsule.exec works properly, replace this\n // It is important to use stdio: 'inherit' so when npm asks for the OTP, the user can enter it\n await execa(this.packageManager, publishParams, { cwd, stdio: 'inherit' });\n this.logger.on();\n this.logger.debug(`${componentIdStr}, successfully ran ${this.packageManager} ${publishParamsStr} at ${cwd}`);\n const pkg = await fsx.readJSON(`${capsule.path}/package.json`);\n metadata = this.options.dryRun ? {} : { publishedPackage: `${pkg.name}@${pkg.version}` };\n } catch (err: any) {\n const errorMsg = `failed running ${this.packageManager} ${publishParamsStr} at ${cwd}`;\n this.logger.error(`${componentIdStr}, ${errorMsg}`);\n errors.push(errorMsg);\n }\n const component = capsule.component;\n return { component, metadata, errors, startTime, endTime: Date.now() };\n }\n\n private getTagFlagForPreRelease(id: ComponentID): string[] {\n const preReleaseData = id.getVersionPreReleaseData();\n if (!preReleaseData) return [];\n const maybeIdentifier = preReleaseData[0]; // it can be numeric as in 1.0.0-0.\n if (typeof maybeIdentifier !== 'string') return [];\n return ['--tag', maybeIdentifier];\n }\n\n private async getComponentCapsules(componentIds: ComponentID[]): Promise<Capsule[]> {\n const idsToPublish = await this.getIdsToPublish(componentIds);\n this.logger.debug(`total ${idsToPublish.length} to publish out of ${componentIds.length}`);\n const componentIdsToPublish = await this.workspace.resolveMultipleComponentIds(idsToPublish);\n const network = await this.isolator.isolateComponents(componentIdsToPublish, {\n packageManagerConfigRootDir: this.workspace.path,\n });\n return network.seedersCapsules;\n }\n\n /**\n * only components that use pkg extension and configure \"publishConfig\" with their own registry\n * or custom \"name\", should be published. ignore the rest.\n */\n private async getIdsToPublish(componentIds: ComponentID[]): Promise<string[]> {\n await this.throwForNonStagedOrTaggedComponents(componentIds);\n const ids = ComponentIdList.fromArray(componentIds);\n const components = await this.scope.getComponentsAndVersions(ids, true);\n return components\n .filter((c) => this.shouldPublish(c.version.extensions))\n .map((c) => c.component.toComponentId().changeVersion(c.versionStr).toString());\n }\n\n // TODO: consider using isPublishedToExternalRegistry from pkg.main.runtime (need to send it a component not extensions)\n public shouldPublish(extensions: ExtensionDataList): boolean {\n const pkgExt = extensions.findExtension(PkgAspect.id);\n if (!pkgExt) return false;\n const config = pkgExt.config as PkgExtensionConfig;\n if (config?.avoidPublishToNPM) return false;\n return config?.packageJson?.name || config?.packageJson?.publishConfig;\n }\n\n private getExtraArgsFromConfig(component: Component): string | undefined {\n const pkgExt = component.config.extensions.findExtension(PkgAspect.id);\n return pkgExt?.config?.packageManagerPublishArgs;\n }\n\n private async throwForNonStagedOrTaggedComponents(componentIds: ComponentID[]) {\n const idsWithoutScope = componentIds.filter((id) => !this.scope.isExported(id));\n if (!idsWithoutScope.length) return;\n if (!this.options.allowStaged && !this.options.dryRun) {\n throw new BitError(\n `unable to publish the following component(s), please make sure they are exported: ${idsWithoutScope.join(\n ', '\n )}`\n );\n }\n const missingFromScope: ComponentID[] = [];\n await Promise.all(\n idsWithoutScope.map(async (id) => {\n const inScope = await this.scope.isComponentInScope(id);\n if (!inScope) {\n missingFromScope.push(id);\n }\n })\n );\n if (missingFromScope.length) {\n throw new BitError(\n `unable to publish the following component(s), please make sure they are tagged: ${missingFromScope.join(', ')}`\n );\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_componentId","data","require","_bitError","_fsExtra","_interopRequireDefault","_pMapSeries","_execa","_pkg","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","Publisher","constructor","isolator","logger","scope","workspace","options","publish","componentPattern","componentIds","idsByPattern","capsules","getComponentCapsules","publishMultipleCapsules","description","dryRun","longProcessLogger","createLongProcessLogger","length","results","mapSeries","capsule","logProgress","component","id","toString","publishOneCapsule","end","startTime","Date","now","publishParams","push","getTagFlagForPreRelease","extraArgs","getExtraArgsFromConfig","Array","isArray","extraArgsSplit","map","arg","split","flat","publishParamsStr","join","cwd","path","componentIdStr","errors","metadata","off","execa","packageManager","stdio","on","debug","pkg","fsx","readJSON","publishedPackage","name","version","err","errorMsg","error","endTime","preReleaseData","getVersionPreReleaseData","maybeIdentifier","idsToPublish","getIdsToPublish","componentIdsToPublish","resolveMultipleComponentIds","network","isolateComponents","packageManagerConfigRootDir","seedersCapsules","throwForNonStagedOrTaggedComponents","ids","ComponentIdList","fromArray","components","getComponentsAndVersions","filter","c","shouldPublish","extensions","toComponentId","changeVersion","versionStr","pkgExt","findExtension","PkgAspect","config","avoidPublishToNPM","packageJson","publishConfig","packageManagerPublishArgs","idsWithoutScope","isExported","allowStaged","BitError","missingFromScope","Promise","all","inScope","isComponentInScope","exports"],"sources":["publisher.ts"],"sourcesContent":["import { ComponentResult, TaskMetadata } from '@teambit/builder';\nimport { Component, ComponentID } from '@teambit/component';\nimport { Capsule, IsolatorMain } from '@teambit/isolator';\nimport { Logger } from '@teambit/logger';\nimport { Workspace } from '@teambit/workspace';\nimport { ComponentIdList } from '@teambit/component-id';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { BitError } from '@teambit/bit-error';\nimport { Scope } from '@teambit/legacy/dist/scope';\nimport fsx from 'fs-extra';\nimport mapSeries from 'p-map-series';\nimport execa from 'execa';\nimport { PkgAspect } from './pkg.aspect';\nimport { PkgExtensionConfig } from './pkg.main.runtime';\n\nexport type PublisherOptions = {\n dryRun?: boolean;\n allowStaged?: boolean;\n};\n\nexport class Publisher {\n packageManager = 'npm'; // @todo: decide if this is mandatory or using the workspace settings\n constructor(\n private isolator: IsolatorMain,\n private logger: Logger,\n private scope: Scope,\n private workspace: Workspace,\n public options: PublisherOptions = {}\n ) {}\n\n async publish(componentPattern: string, options: PublisherOptions): Promise<ComponentResult[]> {\n const componentIds = await this.workspace.idsByPattern(componentPattern);\n this.options = options;\n const capsules = await this.getComponentCapsules(componentIds);\n // const capsules = await this.getComponentCapsulesFromScope(componentIds);\n return this.publishMultipleCapsules(capsules);\n }\n\n public async publishMultipleCapsules(capsules: Capsule[]): Promise<ComponentResult[]> {\n const description = `publish components${this.options.dryRun ? ' (dry-run)' : ''}`;\n const longProcessLogger = this.logger.createLongProcessLogger(description, capsules.length);\n const results = mapSeries(capsules, (capsule) => {\n longProcessLogger.logProgress(capsule.component.id.toString());\n return this.publishOneCapsule(capsule);\n });\n longProcessLogger.end();\n return results;\n }\n\n private async publishOneCapsule(capsule: Capsule): Promise<ComponentResult> {\n const startTime = Date.now();\n const publishParams = ['publish'];\n if (this.options.dryRun) publishParams.push('--dry-run');\n publishParams.push(...this.getTagFlagForPreRelease(capsule.component.id));\n const extraArgs = this.getExtraArgsFromConfig(capsule.component);\n if (extraArgs && Array.isArray(extraArgs) && extraArgs?.length) {\n const extraArgsSplit = extraArgs.map((arg) => arg.split(' ')).flat();\n publishParams.push(...extraArgsSplit);\n }\n const publishParamsStr = publishParams.join(' ');\n const cwd = capsule.path;\n const componentIdStr = capsule.id.toString();\n const errors: string[] = [];\n let metadata: TaskMetadata = {};\n try {\n this.logger.off();\n // @todo: once capsule.exec works properly, replace this\n // It is important to use stdio: 'inherit' so when npm asks for the OTP, the user can enter it\n await execa(this.packageManager, publishParams, { cwd, stdio: 'inherit' });\n this.logger.on();\n this.logger.debug(`${componentIdStr}, successfully ran ${this.packageManager} ${publishParamsStr} at ${cwd}`);\n const pkg = await fsx.readJSON(`${capsule.path}/package.json`);\n metadata = this.options.dryRun ? {} : { publishedPackage: `${pkg.name}@${pkg.version}` };\n } catch (err: any) {\n const errorMsg = `failed running ${this.packageManager} ${publishParamsStr} at ${cwd}`;\n this.logger.error(`${componentIdStr}, ${errorMsg}`);\n errors.push(errorMsg);\n }\n const component = capsule.component;\n return { component, metadata, errors, startTime, endTime: Date.now() };\n }\n\n private getTagFlagForPreRelease(id: ComponentID): string[] {\n const preReleaseData = id.getVersionPreReleaseData();\n if (!preReleaseData) return [];\n const maybeIdentifier = preReleaseData[0]; // it can be numeric as in 1.0.0-0.\n if (typeof maybeIdentifier !== 'string') return [];\n return ['--tag', maybeIdentifier];\n }\n\n private async getComponentCapsules(componentIds: ComponentID[]): Promise<Capsule[]> {\n const idsToPublish = await this.getIdsToPublish(componentIds);\n this.logger.debug(`total ${idsToPublish.length} to publish out of ${componentIds.length}`);\n const componentIdsToPublish = await this.workspace.resolveMultipleComponentIds(idsToPublish);\n const network = await this.isolator.isolateComponents(componentIdsToPublish, {\n packageManagerConfigRootDir: this.workspace.path,\n });\n return network.seedersCapsules;\n }\n\n /**\n * only components that use pkg extension and configure \"publishConfig\" with their own registry\n * or custom \"name\", should be published. ignore the rest.\n */\n private async getIdsToPublish(componentIds: ComponentID[]): Promise<string[]> {\n await this.throwForNonStagedOrTaggedComponents(componentIds);\n const ids = ComponentIdList.fromArray(componentIds);\n const components = await this.scope.getComponentsAndVersions(ids, true);\n return components\n .filter((c) => this.shouldPublish(c.version.extensions))\n .map((c) => c.component.toComponentId().changeVersion(c.versionStr).toString());\n }\n\n // TODO: consider using isPublishedToExternalRegistry from pkg.main.runtime (need to send it a component not extensions)\n public shouldPublish(extensions: ExtensionDataList): boolean {\n const pkgExt = extensions.findExtension(PkgAspect.id);\n if (!pkgExt) return false;\n const config = pkgExt.config as PkgExtensionConfig;\n if (config?.avoidPublishToNPM) return false;\n return config?.packageJson?.name || config?.packageJson?.publishConfig;\n }\n\n private getExtraArgsFromConfig(component: Component): string | undefined {\n const pkgExt = component.config.extensions.findExtension(PkgAspect.id);\n return pkgExt?.config?.packageManagerPublishArgs;\n }\n\n private async throwForNonStagedOrTaggedComponents(componentIds: ComponentID[]) {\n const idsWithoutScope = componentIds.filter((id) => !this.scope.isExported(id));\n if (!idsWithoutScope.length) return;\n if (!this.options.allowStaged && !this.options.dryRun) {\n throw new BitError(\n `unable to publish the following component(s), please make sure they are exported: ${idsWithoutScope.join(\n ', '\n )}`\n );\n }\n const missingFromScope: ComponentID[] = [];\n await Promise.all(\n idsWithoutScope.map(async (id) => {\n const inScope = await this.scope.isComponentInScope(id);\n if (!inScope) {\n missingFromScope.push(id);\n }\n })\n );\n if (missingFromScope.length) {\n throw new BitError(\n `unable to publish the following component(s), please make sure they are tagged: ${missingFromScope.join(', ')}`\n );\n }\n }\n}\n"],"mappings":"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"}
|
package/dist/write-npm-ignore.js
CHANGED
|
@@ -35,9 +35,8 @@ function _packer() {
|
|
|
35
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
36
36
|
const DEFAULT_NPM_IGNORE_ENTRIES = [`${_packer().DEFAULT_TAR_DIR_IN_CAPSULE}/`, _isolator().CAPSULE_READY_FILE];
|
|
37
37
|
async function writeNpmIgnore(capsule, envs) {
|
|
38
|
-
var _env$getNpmIgnore;
|
|
39
38
|
const env = envs.getEnv(capsule.component).env;
|
|
40
|
-
const envIgnoreEntries =
|
|
39
|
+
const envIgnoreEntries = env.getNpmIgnore?.({
|
|
41
40
|
component: capsule.component,
|
|
42
41
|
capsule
|
|
43
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","require","_fsExtra","_interopRequireDefault","_isolator","_packer","obj","__esModule","default","DEFAULT_NPM_IGNORE_ENTRIES","DEFAULT_TAR_DIR_IN_CAPSULE","CAPSULE_READY_FILE","writeNpmIgnore","capsule","envs","
|
|
1
|
+
{"version":3,"names":["_path","data","require","_fsExtra","_interopRequireDefault","_isolator","_packer","obj","__esModule","default","DEFAULT_NPM_IGNORE_ENTRIES","DEFAULT_TAR_DIR_IN_CAPSULE","CAPSULE_READY_FILE","writeNpmIgnore","capsule","envs","env","getEnv","component","envIgnoreEntries","getNpmIgnore","npmIgnoreEntries","concat","length","NPM_IGNORE_FILE","npmIgnorePath","join","path","npmIgnoreEntriesStr","fs","appendFile"],"sources":["write-npm-ignore.ts"],"sourcesContent":["import { join } from 'path';\nimport fs from 'fs-extra';\nimport { EnvsMain, PackageEnv } from '@teambit/envs';\nimport { Capsule, CAPSULE_READY_FILE } from '@teambit/isolator';\nimport { DEFAULT_TAR_DIR_IN_CAPSULE } from './packer';\n\nconst DEFAULT_NPM_IGNORE_ENTRIES = [`${DEFAULT_TAR_DIR_IN_CAPSULE}/`, CAPSULE_READY_FILE];\n\nexport async function writeNpmIgnore(capsule: Capsule, envs: EnvsMain): Promise<void> {\n const env = envs.getEnv(capsule.component).env as PackageEnv;\n const envIgnoreEntries = env.getNpmIgnore?.({ component: capsule.component, capsule });\n const npmIgnoreEntries = DEFAULT_NPM_IGNORE_ENTRIES.concat(envIgnoreEntries || []);\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"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAG,sBAAA,CAAAF,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,UAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,SAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsD,SAAAG,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD,MAAMG,0BAA0B,GAAG,CAAE,GAAEC,oCAA2B,GAAE,EAAEC,8BAAkB,CAAC;AAElF,eAAeC,cAAcA,CAACC,OAAgB,EAAEC,IAAc,EAAiB;EACpF,MAAMC,GAAG,GAAGD,IAAI,CAACE,MAAM,CAACH,OAAO,CAACI,SAAS,CAAC,CAACF,GAAiB;EAC5D,MAAMG,gBAAgB,GAAGH,GAAG,CAACI,YAAY,GAAG;IAAEF,SAAS,EAAEJ,OAAO,CAACI,SAAS;IAAEJ;EAAQ,CAAC,CAAC;EACtF,MAAMO,gBAAgB,GAAGX,0BAA0B,CAACY,MAAM,CAACH,gBAAgB,IAAI,EAAE,CAAC;EAClF,IAAI,CAACE,gBAAgB,IAAI,CAACA,gBAAgB,CAACE,MAAM,EAAE;IACjD;EACF;EACA,MAAMC,eAAe,GAAG,YAAY;EACpC,MAAMC,aAAa,GAAG,IAAAC,YAAI,EAACZ,OAAO,CAACa,IAAI,EAAEH,eAAe,CAAC;EACzD,MAAMI,mBAAmB,GAAI,KAAIP,gBAAgB,CAACK,IAAI,CAAC,IAAI,CAAE,EAAC;EAC9D,MAAMG,kBAAE,CAACC,UAAU,CAACL,aAAa,EAAEG,mBAAmB,CAAC;AACzD"}
|
package/index.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type {
|
|
2
|
+
PkgMain,
|
|
3
|
+
PackageJsonProps,
|
|
4
|
+
ComponentPackageManifest,
|
|
5
|
+
ComponentPkgExtensionData,
|
|
6
|
+
VersionPackageManifest,
|
|
7
|
+
} from './pkg.main.runtime';
|
|
8
|
+
export type { PackageDependency, PackageDependencyFactory } from './package-dependency';
|
|
9
|
+
export type { PackageEnv } from './package-env-type';
|
|
10
|
+
export { PackageGenerator } from './package-generator';
|
|
11
|
+
export { PkgAspect as default, PkgAspect } from './pkg.aspect';
|
|
12
|
+
export { PkgUI } from './pkg.ui.runtime';
|
package/pack.task.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BuildContext, BuiltTaskResult, BuildTask, TaskLocation } from '@teambit/builder';
|
|
2
|
+
import { TypescriptAspect } from '@teambit/typescript';
|
|
3
|
+
import { Logger } from '@teambit/logger';
|
|
4
|
+
import { Packer } from './packer';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* pack components to a .tgz file
|
|
8
|
+
*/
|
|
9
|
+
export class PackTask implements BuildTask {
|
|
10
|
+
readonly name = 'PackComponents';
|
|
11
|
+
readonly description = 'Packing components into a .tgz file';
|
|
12
|
+
readonly location: TaskLocation = 'end';
|
|
13
|
+
readonly dependencies = [TypescriptAspect.id];
|
|
14
|
+
constructor(readonly aspectId: string, private packer: Packer, private logger: Logger) {}
|
|
15
|
+
|
|
16
|
+
async execute(context: BuildContext): Promise<BuiltTaskResult> {
|
|
17
|
+
const capsules = context.capsuleNetwork.seedersCapsules;
|
|
18
|
+
this.logger.info(`going to run pack on ${capsules.length} capsules`);
|
|
19
|
+
const packResults = await this.packer.packMultipleCapsules(capsules, { override: true }, false, true);
|
|
20
|
+
const packArtifactsDefs = this.packer.getArtifactDefInCapsule();
|
|
21
|
+
|
|
22
|
+
return {
|
|
23
|
+
componentsResults: packResults,
|
|
24
|
+
artifacts: [packArtifactsDefs],
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { EnvContext, EnvHandler } from '@teambit/envs';
|
|
2
|
+
import { PackageJsonProps } from './pkg.main.runtime';
|
|
3
|
+
|
|
4
|
+
export type PackageGeneratorOptions = {
|
|
5
|
+
packageJson: PackageJsonProps;
|
|
6
|
+
npmIgnore?: string[];
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* create and maintain build pipelines for component
|
|
11
|
+
* dev environments.
|
|
12
|
+
*/
|
|
13
|
+
export class PackageGenerator {
|
|
14
|
+
constructor(
|
|
15
|
+
private _packageJson: PackageJsonProps = {},
|
|
16
|
+
private _npmIgnore: string[] = [],
|
|
17
|
+
private context: EnvContext
|
|
18
|
+
) {}
|
|
19
|
+
|
|
20
|
+
get packageJsonProps() {
|
|
21
|
+
return this._packageJson;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get npmIgnore() {
|
|
25
|
+
return this._npmIgnore;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static from(options: PackageGeneratorOptions): EnvHandler<PackageGenerator> {
|
|
29
|
+
return (context: EnvContext) => {
|
|
30
|
+
return new PackageGenerator(options.packageJson, options.npmIgnore, context);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
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.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/pkg",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.108",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/pkg/pkg",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pkg",
|
|
8
8
|
"name": "pkg",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.108"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "2.4.2",
|
|
@@ -22,47 +22,43 @@
|
|
|
22
22
|
"ink": "3.2.0",
|
|
23
23
|
"execa": "2.1.0",
|
|
24
24
|
"p-map-series": "2.1.0",
|
|
25
|
-
"core-js": "^3.0.0",
|
|
26
|
-
"@babel/runtime": "7.20.0",
|
|
27
25
|
"@teambit/component-version": "1.0.3",
|
|
28
26
|
"@teambit/harmony": "0.4.6",
|
|
29
27
|
"@teambit/bit-error": "0.0.404",
|
|
30
28
|
"@teambit/ui-foundation.ui.use-box.menu": "1.0.7",
|
|
31
29
|
"@teambit/component-id": "1.2.0",
|
|
32
|
-
"@teambit/cli": "0.0.
|
|
33
|
-
"@teambit/builder": "1.0.
|
|
34
|
-
"@teambit/logger": "0.0.
|
|
35
|
-
"@teambit/typescript": "1.0.
|
|
36
|
-
"@teambit/envs": "1.0.
|
|
37
|
-
"@teambit/component": "1.0.
|
|
38
|
-
"@teambit/express": "0.0.
|
|
39
|
-
"@teambit/isolator": "1.0.
|
|
40
|
-
"@teambit/scope": "1.0.
|
|
41
|
-
"@teambit/graphql": "1.0.
|
|
42
|
-
"@teambit/component-issues": "0.0.
|
|
43
|
-
"@teambit/component-package-version": "0.0.
|
|
44
|
-
"@teambit/dependency-resolver": "1.0.
|
|
45
|
-
"@teambit/workspace.modules.node-modules-linker": "0.0.
|
|
46
|
-
"@teambit/workspace": "1.0.
|
|
47
|
-
"@teambit/ui": "1.0.
|
|
48
|
-
"@teambit/compiler": "1.0.
|
|
30
|
+
"@teambit/cli": "0.0.840",
|
|
31
|
+
"@teambit/builder": "1.0.108",
|
|
32
|
+
"@teambit/logger": "0.0.933",
|
|
33
|
+
"@teambit/typescript": "1.0.108",
|
|
34
|
+
"@teambit/envs": "1.0.108",
|
|
35
|
+
"@teambit/component": "1.0.108",
|
|
36
|
+
"@teambit/express": "0.0.939",
|
|
37
|
+
"@teambit/isolator": "1.0.108",
|
|
38
|
+
"@teambit/scope": "1.0.108",
|
|
39
|
+
"@teambit/graphql": "1.0.108",
|
|
40
|
+
"@teambit/component-issues": "0.0.138",
|
|
41
|
+
"@teambit/component-package-version": "0.0.431",
|
|
42
|
+
"@teambit/dependency-resolver": "1.0.108",
|
|
43
|
+
"@teambit/workspace.modules.node-modules-linker": "0.0.158",
|
|
44
|
+
"@teambit/workspace": "1.0.108",
|
|
45
|
+
"@teambit/ui": "1.0.108",
|
|
46
|
+
"@teambit/compiler": "1.0.108"
|
|
49
47
|
},
|
|
50
48
|
"devDependencies": {
|
|
51
49
|
"@types/mime": "2.0.3",
|
|
52
50
|
"@types/fs-extra": "9.0.7",
|
|
53
51
|
"@types/lodash": "4.14.165",
|
|
54
|
-
"@types/react": "^17.0.8",
|
|
55
52
|
"@types/mocha": "9.1.0",
|
|
56
|
-
"@types/
|
|
57
|
-
"@types/
|
|
58
|
-
"@
|
|
59
|
-
"@
|
|
60
|
-
"@teambit/pkg.content.packages-overview": "1.95.9"
|
|
53
|
+
"@types/jest": "^29.2.2",
|
|
54
|
+
"@types/testing-library__jest-dom": "^5.9.5",
|
|
55
|
+
"@teambit/pkg.content.packages-overview": "1.95.9",
|
|
56
|
+
"@teambit/harmony.envs.core-aspect-env": "0.0.13"
|
|
61
57
|
},
|
|
62
58
|
"peerDependencies": {
|
|
63
|
-
"
|
|
64
|
-
"react": "^
|
|
65
|
-
"
|
|
59
|
+
"react": "^17.0.0 || ^18.0.0",
|
|
60
|
+
"@types/react": "^18.2.12",
|
|
61
|
+
"@teambit/legacy": "1.0.624"
|
|
66
62
|
},
|
|
67
63
|
"license": "Apache-2.0",
|
|
68
64
|
"optionalDependencies": {},
|
|
@@ -76,7 +72,7 @@
|
|
|
76
72
|
},
|
|
77
73
|
"private": false,
|
|
78
74
|
"engines": {
|
|
79
|
-
"node": ">=
|
|
75
|
+
"node": ">=16.0.0"
|
|
80
76
|
},
|
|
81
77
|
"repository": {
|
|
82
78
|
"type": "git",
|
|
@@ -85,12 +81,9 @@
|
|
|
85
81
|
"keywords": [
|
|
86
82
|
"bit",
|
|
87
83
|
"bit-aspect",
|
|
84
|
+
"bit-core-aspect",
|
|
88
85
|
"components",
|
|
89
86
|
"collaboration",
|
|
90
|
-
"web"
|
|
91
|
-
"react",
|
|
92
|
-
"react-components",
|
|
93
|
-
"angular",
|
|
94
|
-
"angular-components"
|
|
87
|
+
"web"
|
|
95
88
|
]
|
|
96
89
|
}
|
package/package.route.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
}
|