@teambit/compositions 0.0.811 → 0.0.814
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/compositions.main.runtime.d.ts +14 -2
- package/dist/compositions.main.runtime.js +31 -5
- package/dist/compositions.main.runtime.js.map +1 -1
- package/package-tar/teambit-compositions-0.0.814.tgz +0 -0
- package/package.json +15 -15
- package/{preview-1660015726089.js → preview-1660275011373.js} +2 -2
- package/package-tar/teambit-compositions-0.0.811.tgz +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AspectData, Component, ComponentMap, IComponent } from '@teambit/component';
|
|
2
2
|
import { DevFilesMain } from '@teambit/dev-files';
|
|
3
|
+
import { EnvsMain } from '@teambit/envs';
|
|
3
4
|
import { GraphqlMain } from '@teambit/graphql';
|
|
4
5
|
import { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';
|
|
5
6
|
import { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';
|
|
@@ -44,6 +45,7 @@ export declare class CompositionsMain {
|
|
|
44
45
|
*/
|
|
45
46
|
private schema;
|
|
46
47
|
private devFiles;
|
|
48
|
+
private envs;
|
|
47
49
|
constructor(
|
|
48
50
|
/**
|
|
49
51
|
* Glob pattern to select all composition files
|
|
@@ -64,7 +66,7 @@ export declare class CompositionsMain {
|
|
|
64
66
|
/**
|
|
65
67
|
* schema extension.
|
|
66
68
|
*/
|
|
67
|
-
schema: SchemaMain, devFiles: DevFilesMain);
|
|
69
|
+
schema: SchemaMain, devFiles: DevFilesMain, envs: EnvsMain);
|
|
68
70
|
/**
|
|
69
71
|
* returns an array of doc file paths for a set of components.
|
|
70
72
|
*/
|
|
@@ -81,10 +83,20 @@ export declare class CompositionsMain {
|
|
|
81
83
|
* read composition from the component source code.
|
|
82
84
|
*/
|
|
83
85
|
readCompositions(component: Component): Composition[];
|
|
86
|
+
getCompositionFilePattern(): string[];
|
|
87
|
+
getComponentDevPatterns(component: Component): string[];
|
|
88
|
+
getDevPatternToRegister(): (component: Component) => string[];
|
|
84
89
|
onComponentLoad(component: Component, loadOpts?: ComponentLoadOptions): Promise<AspectData | undefined>;
|
|
85
90
|
private computeCompositions;
|
|
86
91
|
static defaultConfig: CompositionsConfig;
|
|
87
92
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
88
93
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
89
|
-
static provider([preview, graphql, workspace, schema, devFiles
|
|
94
|
+
static provider([preview, graphql, workspace, schema, devFiles, envs]: [
|
|
95
|
+
PreviewMain,
|
|
96
|
+
GraphqlMain,
|
|
97
|
+
Workspace,
|
|
98
|
+
SchemaMain,
|
|
99
|
+
DevFilesMain,
|
|
100
|
+
EnvsMain
|
|
101
|
+
], config: CompositionsConfig): Promise<CompositionsMain>;
|
|
90
102
|
}
|
|
@@ -53,6 +53,16 @@ function _devFiles() {
|
|
|
53
53
|
return data;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
function _envs() {
|
|
57
|
+
const data = _interopRequireDefault(require("@teambit/envs"));
|
|
58
|
+
|
|
59
|
+
_envs = function () {
|
|
60
|
+
return data;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
return data;
|
|
64
|
+
}
|
|
65
|
+
|
|
56
66
|
function _graphql() {
|
|
57
67
|
const data = require("@teambit/graphql");
|
|
58
68
|
|
|
@@ -187,13 +197,14 @@ class CompositionsMain {
|
|
|
187
197
|
/**
|
|
188
198
|
* schema extension.
|
|
189
199
|
*/
|
|
190
|
-
schema, devFiles) {
|
|
200
|
+
schema, devFiles, envs) {
|
|
191
201
|
this.compositionFilePattern = compositionFilePattern;
|
|
192
202
|
this.previewFilePattern = previewFilePattern;
|
|
193
203
|
this.preview = preview;
|
|
194
204
|
this.workspace = workspace;
|
|
195
205
|
this.schema = schema;
|
|
196
206
|
this.devFiles = devFiles;
|
|
207
|
+
this.envs = envs;
|
|
197
208
|
}
|
|
198
209
|
/**
|
|
199
210
|
* returns an array of doc file paths for a set of components.
|
|
@@ -248,6 +259,21 @@ class CompositionsMain {
|
|
|
248
259
|
}));
|
|
249
260
|
}
|
|
250
261
|
|
|
262
|
+
getCompositionFilePattern() {
|
|
263
|
+
return this.compositionFilePattern;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
getComponentDevPatterns(component) {
|
|
267
|
+
const env = this.envs.calculateEnv(component).env;
|
|
268
|
+
const componentEnvCompositionsDevPatterns = env.getCompositionsDevPatterns ? env.getCompositionsDevPatterns(component) : [];
|
|
269
|
+
const componentPatterns = componentEnvCompositionsDevPatterns.concat(this.getCompositionFilePattern());
|
|
270
|
+
return componentPatterns;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
getDevPatternToRegister() {
|
|
274
|
+
return this.getComponentDevPatterns.bind(this);
|
|
275
|
+
}
|
|
276
|
+
|
|
251
277
|
async onComponentLoad(component, loadOpts) {
|
|
252
278
|
if ((loadOpts === null || loadOpts === void 0 ? void 0 : loadOpts.loadCompositions) === false) return undefined;
|
|
253
279
|
const compositions = this.readCompositions(component);
|
|
@@ -269,10 +295,10 @@ class CompositionsMain {
|
|
|
269
295
|
});
|
|
270
296
|
}
|
|
271
297
|
|
|
272
|
-
static async provider([preview, graphql, workspace, schema, devFiles], config) {
|
|
273
|
-
const compositions = new CompositionsMain(config.compositionFilePattern, config.compositionPreviewFilePattern, preview, workspace, schema, devFiles); // TODO: use the docs implementation to allow component specific pattern
|
|
298
|
+
static async provider([preview, graphql, workspace, schema, devFiles, envs], config) {
|
|
299
|
+
const compositions = new CompositionsMain(config.compositionFilePattern, config.compositionPreviewFilePattern, preview, workspace, schema, devFiles, envs); // TODO: use the docs implementation to allow component specific pattern
|
|
274
300
|
|
|
275
|
-
devFiles.registerDevPattern(
|
|
301
|
+
devFiles.registerDevPattern(compositions.getDevPatternToRegister());
|
|
276
302
|
graphql.register((0, _compositions2().compositionsSchema)(compositions));
|
|
277
303
|
preview.registerDefinition(new (_compositions3().CompositionPreviewDefinition)(compositions));
|
|
278
304
|
|
|
@@ -291,7 +317,7 @@ exports.CompositionsMain = CompositionsMain;
|
|
|
291
317
|
compositionPreviewFilePattern: ['**/*.{t,j}s?(x)']
|
|
292
318
|
});
|
|
293
319
|
(0, _defineProperty2().default)(CompositionsMain, "runtime", _cli().MainRuntime);
|
|
294
|
-
(0, _defineProperty2().default)(CompositionsMain, "dependencies", [_preview().PreviewAspect, _graphql().GraphqlAspect, _workspace().WorkspaceAspect, _schema().SchemaAspect, _devFiles().DevFilesAspect,
|
|
320
|
+
(0, _defineProperty2().default)(CompositionsMain, "dependencies", [_preview().PreviewAspect, _graphql().GraphqlAspect, _workspace().WorkspaceAspect, _schema().SchemaAspect, _devFiles().DevFilesAspect, _envs().default]);
|
|
295
321
|
|
|
296
322
|
_compositions().CompositionsAspect.addRuntime(CompositionsMain);
|
|
297
323
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CompositionsMain","constructor","compositionFilePattern","previewFilePattern","preview","workspace","schema","devFiles","getPreviewFiles","components","ComponentMap","as","component","compositionFiles","state","filesystem","byGlob","previewFiles","Set","map","file","relative","files","filter","has","isCompositionFile","filePath","includePatterns","excludePatterns","splitPatterns","matchPatterns","getCompositions","entry","get","CompositionsAspect","id","compositions","data","Composition","fromArray","readCompositions","maybeFiles","byComponent","flatten","computeCompositions","onComponentLoad","loadOpts","loadCompositions","undefined","composition","toObject","pathArray","path","split","length","exports","parseModule","join","componentDir","exportModel","displayName","staticProperties","identifier","provider","graphql","config","compositionPreviewFilePattern","registerDevPattern","register","compositionsSchema","registerDefinition","CompositionPreviewDefinition","bind","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","SchemaAspect","DevFilesAspect","ComponentAspect","addRuntime"],"sources":["compositions.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { AspectData, Component, ComponentAspect, ComponentMap, IComponent } from '@teambit/component';\nimport { DevFilesAspect, DevFilesMain } from '@teambit/dev-files';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { flatten } from '@teambit/legacy/dist/utils';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport { SchemaAspect, SchemaMain } from '@teambit/schema';\nimport { matchPatterns, splitPatterns } from '@teambit/toolbox.path.match-patterns';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { join } from 'path';\nimport { Composition } from './composition';\nimport { CompositionsAspect } from './compositions.aspect';\nimport { compositionsSchema } from './compositions.graphql';\nimport { CompositionPreviewDefinition } from './compositions.preview-definition';\n\nexport type CompositionsConfig = {\n /**\n * glob pattern to detect composition files. This includes all related files, like styles and jsons.\n * @example ['/*.composition?(s).*']\n */\n compositionFilePattern: string[];\n /**\n * glob pattern to select Preview files. this will only include files matched by compositionFilePattern.\n * @example ['*.{t,j}s', '*.{t,j}sx']\n */\n compositionPreviewFilePattern: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class CompositionsMain {\n constructor(\n /**\n * Glob pattern to select all composition files\n */\n private compositionFilePattern: string[],\n\n /**\n * Glob pattern to select composition preview files\n */\n private previewFilePattern: string[],\n\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * schema extension.\n */\n private schema: SchemaMain,\n\n private devFiles: DevFilesMain\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getPreviewFiles(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n // this includes non executables, like `button.compositions.module.scss` or `presets.compositions.json`\n const compositionFiles = component.state.filesystem.byGlob(this.compositionFilePattern);\n\n // select only relevant preview files (.tsx, etc)\n const previewFiles = new Set(\n component.state.filesystem.byGlob(this.previewFilePattern).map((file) => file.relative)\n );\n const files = compositionFiles.filter((file) => previewFiles.has(file.relative));\n\n return files;\n });\n }\n\n /**\n * checks if a file matches the composition file pattern.\n */\n isCompositionFile(filePath: string): boolean {\n const { includePatterns, excludePatterns } = splitPatterns(this.compositionFilePattern);\n return matchPatterns(filePath, includePatterns, excludePatterns);\n }\n\n /**\n * get component compositions.\n */\n getCompositions(component: IComponent): Composition[] {\n const entry = component.get(CompositionsAspect.id);\n if (!entry) return [];\n const compositions = entry.data.compositions;\n if (!compositions) return [];\n\n return Composition.fromArray(compositions);\n }\n\n /**\n * read composition from the component source code.\n */\n readCompositions(component: Component): Composition[] {\n const maybeFiles = this.getPreviewFiles([component]).byComponent(component);\n\n if (!maybeFiles) return [];\n const [, files] = maybeFiles;\n return flatten(\n files.map((file) => {\n return this.computeCompositions(component, file);\n })\n );\n }\n\n async onComponentLoad(component: Component, loadOpts?: ComponentLoadOptions): Promise<AspectData | undefined> {\n if (loadOpts?.loadCompositions === false) return undefined;\n const compositions = this.readCompositions(component);\n return {\n compositions: compositions.map((composition) => composition.toObject()),\n };\n }\n\n private computeCompositions(component: Component, file: AbstractVinyl): Composition[] {\n // :TODO hacked for a specific file extension now until david will take care in the compiler.\n const pathArray = file.path.split('.');\n pathArray[pathArray.length - 1] = 'js';\n\n const exports = this.schema.parseModule(join(this.workspace.componentDir(component.id), file.relative));\n return exports.map((exportModel) => {\n const displayName = exportModel.staticProperties?.get('compositionName');\n\n return new Composition(\n exportModel.identifier,\n file.relative,\n typeof displayName === 'string' ? displayName : undefined\n );\n });\n }\n\n static defaultConfig: CompositionsConfig = {\n compositionFilePattern: ['**/*.composition?(s).*'],\n compositionPreviewFilePattern: ['**/*.{t,j}s?(x)'],\n };\n\n static runtime = MainRuntime;\n static dependencies = [PreviewAspect, GraphqlAspect, WorkspaceAspect, SchemaAspect, DevFilesAspect, ComponentAspect];\n\n static async provider(\n [preview, graphql, workspace, schema, devFiles]: [PreviewMain, GraphqlMain, Workspace, SchemaMain, DevFilesMain],\n config: CompositionsConfig\n ) {\n const compositions = new CompositionsMain(\n config.compositionFilePattern,\n config.compositionPreviewFilePattern,\n preview,\n workspace,\n schema,\n devFiles\n );\n\n // TODO: use the docs implementation to allow component specific pattern\n devFiles.registerDevPattern(config.compositionFilePattern);\n\n graphql.register(compositionsSchema(compositions));\n preview.registerDefinition(new CompositionPreviewDefinition(compositions));\n\n if (workspace) {\n workspace.onComponentLoad(compositions.onComponentLoad.bind(compositions));\n }\n\n return compositions;\n }\n}\n\nCompositionsAspect.addRuntime(CompositionsMain);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["CompositionsMain","constructor","compositionFilePattern","previewFilePattern","preview","workspace","schema","devFiles","envs","getPreviewFiles","components","ComponentMap","as","component","compositionFiles","state","filesystem","byGlob","previewFiles","Set","map","file","relative","files","filter","has","isCompositionFile","filePath","includePatterns","excludePatterns","splitPatterns","matchPatterns","getCompositions","entry","get","CompositionsAspect","id","compositions","data","Composition","fromArray","readCompositions","maybeFiles","byComponent","flatten","computeCompositions","getCompositionFilePattern","getComponentDevPatterns","env","calculateEnv","componentEnvCompositionsDevPatterns","getCompositionsDevPatterns","componentPatterns","concat","getDevPatternToRegister","bind","onComponentLoad","loadOpts","loadCompositions","undefined","composition","toObject","pathArray","path","split","length","exports","parseModule","join","componentDir","exportModel","displayName","staticProperties","identifier","provider","graphql","config","compositionPreviewFilePattern","registerDevPattern","register","compositionsSchema","registerDefinition","CompositionPreviewDefinition","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","SchemaAspect","DevFilesAspect","EnvsAspect","addRuntime"],"sources":["compositions.main.runtime.ts"],"sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { AspectData, Component, ComponentMap, IComponent } from '@teambit/component';\nimport { DevFilesAspect, DevFilesMain } from '@teambit/dev-files';\nimport EnvsAspect, { EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { flatten } from '@teambit/legacy/dist/utils';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport { SchemaAspect, SchemaMain } from '@teambit/schema';\nimport { matchPatterns, splitPatterns } from '@teambit/toolbox.path.match-patterns';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { join } from 'path';\nimport { Composition } from './composition';\nimport { CompositionsAspect } from './compositions.aspect';\nimport { compositionsSchema } from './compositions.graphql';\nimport { CompositionPreviewDefinition } from './compositions.preview-definition';\n\nexport type CompositionsConfig = {\n /**\n * glob pattern to detect composition files. This includes all related files, like styles and jsons.\n * @example ['/*.composition?(s).*']\n */\n compositionFilePattern: string[];\n /**\n * glob pattern to select Preview files. this will only include files matched by compositionFilePattern.\n * @example ['*.{t,j}s', '*.{t,j}sx']\n */\n compositionPreviewFilePattern: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class CompositionsMain {\n constructor(\n /**\n * Glob pattern to select all composition files\n */\n private compositionFilePattern: string[],\n\n /**\n * Glob pattern to select composition preview files\n */\n private previewFilePattern: string[],\n\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * schema extension.\n */\n private schema: SchemaMain,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getPreviewFiles(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n // this includes non executables, like `button.compositions.module.scss` or `presets.compositions.json`\n const compositionFiles = component.state.filesystem.byGlob(this.compositionFilePattern);\n\n // select only relevant preview files (.tsx, etc)\n const previewFiles = new Set(\n component.state.filesystem.byGlob(this.previewFilePattern).map((file) => file.relative)\n );\n const files = compositionFiles.filter((file) => previewFiles.has(file.relative));\n\n return files;\n });\n }\n\n /**\n * checks if a file matches the composition file pattern.\n */\n isCompositionFile(filePath: string): boolean {\n const { includePatterns, excludePatterns } = splitPatterns(this.compositionFilePattern);\n return matchPatterns(filePath, includePatterns, excludePatterns);\n }\n\n /**\n * get component compositions.\n */\n getCompositions(component: IComponent): Composition[] {\n const entry = component.get(CompositionsAspect.id);\n if (!entry) return [];\n const compositions = entry.data.compositions;\n if (!compositions) return [];\n\n return Composition.fromArray(compositions);\n }\n\n /**\n * read composition from the component source code.\n */\n readCompositions(component: Component): Composition[] {\n const maybeFiles = this.getPreviewFiles([component]).byComponent(component);\n\n if (!maybeFiles) return [];\n const [, files] = maybeFiles;\n return flatten(\n files.map((file) => {\n return this.computeCompositions(component, file);\n })\n );\n }\n\n getCompositionFilePattern() {\n return this.compositionFilePattern;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentEnvCompositionsDevPatterns: string[] = env.getCompositionsDevPatterns\n ? env.getCompositionsDevPatterns(component)\n : [];\n const componentPatterns = componentEnvCompositionsDevPatterns.concat(this.getCompositionFilePattern());\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n\n async onComponentLoad(component: Component, loadOpts?: ComponentLoadOptions): Promise<AspectData | undefined> {\n if (loadOpts?.loadCompositions === false) return undefined;\n const compositions = this.readCompositions(component);\n return {\n compositions: compositions.map((composition) => composition.toObject()),\n };\n }\n\n private computeCompositions(component: Component, file: AbstractVinyl): Composition[] {\n // :TODO hacked for a specific file extension now until david will take care in the compiler.\n const pathArray = file.path.split('.');\n pathArray[pathArray.length - 1] = 'js';\n\n const exports = this.schema.parseModule(join(this.workspace.componentDir(component.id), file.relative));\n return exports.map((exportModel) => {\n const displayName = exportModel.staticProperties?.get('compositionName');\n\n return new Composition(\n exportModel.identifier,\n file.relative,\n typeof displayName === 'string' ? displayName : undefined\n );\n });\n }\n\n static defaultConfig: CompositionsConfig = {\n compositionFilePattern: ['**/*.composition?(s).*'],\n compositionPreviewFilePattern: ['**/*.{t,j}s?(x)'],\n };\n\n static runtime = MainRuntime;\n static dependencies = [PreviewAspect, GraphqlAspect, WorkspaceAspect, SchemaAspect, DevFilesAspect, EnvsAspect];\n\n static async provider(\n [preview, graphql, workspace, schema, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n SchemaMain,\n DevFilesMain,\n EnvsMain\n ],\n config: CompositionsConfig\n ) {\n const compositions = new CompositionsMain(\n config.compositionFilePattern,\n config.compositionPreviewFilePattern,\n preview,\n workspace,\n schema,\n devFiles,\n envs\n );\n\n // TODO: use the docs implementation to allow component specific pattern\n devFiles.registerDevPattern(compositions.getDevPatternToRegister());\n\n graphql.register(compositionsSchema(compositions));\n preview.registerDefinition(new CompositionPreviewDefinition(compositions));\n\n if (workspace) {\n workspace.onComponentLoad(compositions.onComponentLoad.bind(compositions));\n }\n\n return compositions;\n }\n}\n\nCompositionsAspect.addRuntime(CompositionsMain);\n"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/compositions",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.814",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/compositions/compositions",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.compositions",
|
|
8
8
|
"name": "compositions",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.814"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"graphql-tag": "2.12.1",
|
|
@@ -25,18 +25,18 @@
|
|
|
25
25
|
"@teambit/documenter.ui.heading": "4.1.1",
|
|
26
26
|
"@teambit/documenter.ui.property-table": "4.1.3",
|
|
27
27
|
"@teambit/evangelist.elements.icon": "1.0.2",
|
|
28
|
-
"@teambit/component": "0.0.
|
|
29
|
-
"@teambit/compositions.ui.composition-compare": "0.0.
|
|
28
|
+
"@teambit/component": "0.0.814",
|
|
29
|
+
"@teambit/compositions.ui.composition-compare": "0.0.52",
|
|
30
30
|
"@teambit/compositions.model.composition-id": "0.0.488",
|
|
31
|
-
"@teambit/graphql": "0.0.
|
|
32
|
-
"@teambit/cli": "0.0.
|
|
33
|
-
"@teambit/dev-files": "0.0.
|
|
34
|
-
"@teambit/
|
|
35
|
-
"@teambit/
|
|
31
|
+
"@teambit/graphql": "0.0.814",
|
|
32
|
+
"@teambit/cli": "0.0.544",
|
|
33
|
+
"@teambit/dev-files": "0.0.814",
|
|
34
|
+
"@teambit/envs": "0.0.814",
|
|
35
|
+
"@teambit/preview": "0.0.814",
|
|
36
|
+
"@teambit/schema": "0.0.814",
|
|
36
37
|
"@teambit/toolbox.path.match-patterns": "0.0.1",
|
|
37
|
-
"@teambit/workspace": "0.0.
|
|
38
|
+
"@teambit/workspace": "0.0.814",
|
|
38
39
|
"@teambit/ui-foundation.ui.constants.z-indexes": "0.0.488",
|
|
39
|
-
"@teambit/envs": "0.0.811",
|
|
40
40
|
"@teambit/component-id": "0.0.405",
|
|
41
41
|
"@teambit/compositions.ui.compositions-menu-bar": "0.0.163",
|
|
42
42
|
"@teambit/compositions.ui.hooks.use-composition": "0.0.163",
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
"@teambit/design.ui.surfaces.status-message-card": "0.0.8",
|
|
46
46
|
"@teambit/docs.ui.queries.get-docs": "0.0.487",
|
|
47
47
|
"@teambit/mdx.ui.mdx-layout": "0.0.501",
|
|
48
|
-
"@teambit/panels": "0.0.
|
|
48
|
+
"@teambit/panels": "0.0.545",
|
|
49
49
|
"@teambit/preview.ui.component-preview": "0.0.494",
|
|
50
50
|
"@teambit/ui-foundation.ui.buttons.collapser": "0.0.195",
|
|
51
51
|
"@teambit/ui-foundation.ui.hooks.use-is-mobile": "0.0.179",
|
|
52
|
-
"@teambit/component-compare": "0.0.
|
|
53
|
-
"@teambit/ui": "0.0.
|
|
52
|
+
"@teambit/component-compare": "0.0.62",
|
|
53
|
+
"@teambit/ui": "0.0.814",
|
|
54
54
|
"@teambit/compositions.model.composition-type": "0.0.489",
|
|
55
55
|
"@teambit/compositions.ui.composition-card": "0.0.496"
|
|
56
56
|
},
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@teambit/compositions.aspect-docs.compositions": "0.0.139"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@teambit/legacy": "1.0.
|
|
69
|
+
"@teambit/legacy": "1.0.327",
|
|
70
70
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
71
71
|
"react": "^16.8.0 || ^17.0.0"
|
|
72
72
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compositions_compositions@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compositions_compositions@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compositions_compositions@0.0.814/dist/compositions.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.compositions_compositions@0.0.814/dist/compositions.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
Binary file
|