@teambit/docs 0.0.918 → 0.0.920

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.
@@ -64,8 +64,14 @@ export declare class DocsMain {
64
64
  computeDoc(component: Component): Promise<Doc | null>;
65
65
  getDoc(component: IComponent): Doc | null;
66
66
  getPatterns(): string[];
67
- getComponentDevPatterns(component: Component): string[];
68
- getDevPatternToRegister(): (component: Component) => string[];
67
+ getComponentDevPatterns(component: Component): {
68
+ name: string;
69
+ pattern: string[];
70
+ };
71
+ getDevPatternToRegister(): (component: Component) => {
72
+ name: string;
73
+ pattern: string[];
74
+ };
69
75
  /**
70
76
  * register a new doc reader. this allows to support further
71
77
  * documentation file formats.
@@ -164,7 +164,7 @@ class DocsMain {
164
164
  });
165
165
  }
166
166
  getDocsFiles(component) {
167
- const devFiles = this.devFiles.computeDevFiles(component);
167
+ const devFiles = this.devFiles.getDevFiles(component);
168
168
  const docFiles = devFiles.get(_docs().DocsAspect.id);
169
169
  return component.state.filesystem.files.filter(file => docFiles.includes(file.relative));
170
170
  }
@@ -222,7 +222,10 @@ class DocsMain {
222
222
  const env = this.envs.calculateEnv(component).env;
223
223
  const componentEnvDocsDevPatterns = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];
224
224
  const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());
225
- return componentPatterns;
225
+ return {
226
+ name: 'docs',
227
+ pattern: componentPatterns
228
+ };
226
229
  }
227
230
  getDevPatternToRegister() {
228
231
  return this.getComponentDevPatterns.bind(this);
@@ -243,12 +246,15 @@ class DocsMain {
243
246
  if (workspace) {
244
247
  workspace.onComponentLoad(async (component, opts) => {
245
248
  if ((opts === null || opts === void 0 ? void 0 : opts.loadDocs) === false) return undefined;
249
+ // const docFiles = await docs.computeDocs(component);
246
250
  const doc = await docs.computeDoc(component);
247
251
  return {
248
252
  doc: doc === null || doc === void 0 ? void 0 : doc.toObject()
253
+ // docFiles
249
254
  };
250
255
  });
251
256
  }
257
+
252
258
  graphql.register((0, _docs3().docsSchema)(docs));
253
259
  preview.registerDefinition(new (_docs2().DocsPreviewDefinition)(docs));
254
260
  return docs;
@@ -1 +1 @@
1
- {"version":3,"names":["DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","computeDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","opts","loadDocs","undefined","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.computeDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\n }\n\n async getTemplate(env: Environment) {\n return env.getDocsTemplate();\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: IComponent) {\n const docData = component.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return componentPatterns;\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component, opts) => {\n if (opts?.loadDocs === false) return undefined;\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n };\n });\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["DocsMain","constructor","patterns","preview","pkg","compiler","workspace","logger","devFiles","envs","docPropSlot","docReaderSlot","getDocsMap","components","ComponentMap","as","component","getDocsFiles","getDevFiles","docFiles","get","DocsAspect","id","state","filesystem","files","filter","file","includes","relative","getDescription","componentDoc","getDoc","desc","description","consumerComponent","_consumer","fromJsDocs","docs","find","doc","getTemplate","env","getDocsTemplate","getDocReader","extension","values","docReader","isFormatSupported","computeDoc","length","docFile","extname","FileExtensionNotSupported","read","contents","err","debug","message","docData","data","Doc","filePath","DocPropList","props","getPatterns","getComponentDevPatterns","calculateEnv","componentEnvDocsDevPatterns","getDocsDevPatterns","componentPatterns","concat","name","pattern","getDevPatternToRegister","bind","registerDocReader","register","provider","graphql","loggerAspect","config","createLogger","DefaultDocReader","registerDevPattern","onComponentLoad","opts","loadDocs","undefined","toObject","docsSchema","registerDefinition","DocsPreviewDefinition","Slot","withType","MainRuntime","PreviewAspect","GraphqlAspect","WorkspaceAspect","PkgAspect","CompilerAspect","LoggerAspect","DevFilesAspect","EnvsAspect","addRuntime"],"sources":["docs.main.runtime.ts"],"sourcesContent":["import { Slot, SlotRegistry } from '@teambit/harmony';\nimport { MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, LoggerMain, Logger } from '@teambit/logger';\nimport { CompilerAspect, CompilerMain } from '@teambit/compiler';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport { PkgAspect, PkgMain } from '@teambit/pkg';\nimport type { Environment } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { PreviewAspect, PreviewMain } from '@teambit/preview';\nimport DevFilesAspect, { DevFilesMain } from '@teambit/dev-files';\nimport { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { Doc, DocPropList } from '@teambit/docs.entities.doc';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { DocsAspect } from './docs.aspect';\nimport { DocsPreviewDefinition } from './docs.preview-definition';\nimport { docsSchema } from './docs.graphql';\nimport { DocReader } from './doc-reader';\nimport { DefaultDocReader } from './default-doc-reader';\nimport { FileExtensionNotSupported } from './exceptions';\n\nexport type ComponentDocs = {\n files: string[];\n component: Component;\n};\n\nexport type DocProp = {};\n\nexport type DocPropSlot = SlotRegistry<DocProp>;\n\nexport type DocReaderSlot = SlotRegistry<DocReader>;\n\nexport type DocsConfig = {\n /**\n * glob patterns to identify doc files.\n */\n patterns: string[];\n};\n\n/**\n * the component documentation extension.\n */\nexport class DocsMain {\n constructor(\n private patterns: string[],\n /**\n * envs extension.\n */\n private preview: PreviewMain,\n\n private pkg: PkgMain,\n\n private compiler: CompilerMain,\n\n private workspace: Workspace,\n\n private logger: Logger,\n\n private devFiles: DevFilesMain,\n\n private envs: EnvsMain,\n\n private docPropSlot: DocPropSlot,\n\n private docReaderSlot: DocReaderSlot\n ) {}\n\n /**\n * returns an array of doc file paths for a set of components.\n */\n getDocsMap(components: Component[]): ComponentMap<AbstractVinyl[]> {\n return ComponentMap.as<AbstractVinyl[]>(components, (component) => {\n return this.getDocsFiles(component);\n });\n }\n\n getDocsFiles(component: Component): AbstractVinyl[] {\n const devFiles = this.devFiles.getDevFiles(component);\n const docFiles = devFiles.get(DocsAspect.id);\n return component.state.filesystem.files.filter((file) => docFiles.includes(file.relative));\n }\n\n /**\n * compute the description of the component from its source code and docs file.\n */\n async getDescription(component: Component): Promise<string> {\n const componentDoc = this.getDoc(component);\n const desc = componentDoc?.description;\n if (desc) return desc;\n const consumerComponent: ConsumerComponent = component.state._consumer;\n const fromJsDocs = consumerComponent.docs?.find((doc) => doc.description);\n\n return fromJsDocs?.description || '';\n }\n\n async getTemplate(env: Environment) {\n return env.getDocsTemplate();\n }\n\n getDocReader(extension: string) {\n return this.docReaderSlot.values().find((docReader) => docReader.isFormatSupported(extension));\n }\n\n /**\n * compute a doc for a component.\n */\n async computeDoc(component: Component) {\n const docFiles = this.getDocsFiles(component);\n if (docFiles.length) {\n // currently taking the the first docs file found with an abstract. (we support only one)\n const docFile = docFiles[0];\n\n try {\n const docReader = this.getDocReader(docFile.extname);\n if (!docReader) throw new FileExtensionNotSupported(docFile.relative, docFile.extname);\n const doc = await docReader.read(docFile.relative, docFile.contents, component);\n return doc;\n } catch (err: any) {\n // it's ok to fail here.\n this.logger.debug(`docs.main.runtime.computeDoc caught an error: ${err.message}`);\n return null;\n }\n }\n\n return null;\n }\n\n getDoc(component: IComponent) {\n const docData = component.get(DocsAspect.id)?.data?.doc;\n if (!docData) return null;\n return new Doc(docData.filePath, new DocPropList(docData.props));\n }\n\n getPatterns() {\n return this.patterns;\n }\n\n getComponentDevPatterns(component: Component) {\n const env = this.envs.calculateEnv(component).env;\n const componentEnvDocsDevPatterns: string[] = env.getDocsDevPatterns ? env.getDocsDevPatterns(component) : [];\n const componentPatterns = componentEnvDocsDevPatterns.concat(this.getPatterns());\n return {name: 'docs', pattern: componentPatterns};\n }\n\n getDevPatternToRegister() {\n return this.getComponentDevPatterns.bind(this);\n }\n /**\n * register a new doc reader. this allows to support further\n * documentation file formats.\n */\n registerDocReader(docReader: DocReader) {\n this.docReaderSlot.register(docReader);\n return this;\n }\n\n static slots = [Slot.withType<DocProp>(), Slot.withType<DocReader>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n PreviewAspect,\n GraphqlAspect,\n WorkspaceAspect,\n PkgAspect,\n CompilerAspect,\n LoggerAspect,\n DevFilesAspect,\n EnvsAspect,\n ];\n\n static defaultConfig = {\n patterns: ['**/*.docs.*'],\n };\n\n static async provider(\n [preview, graphql, workspace, pkg, compiler, loggerAspect, devFiles, envs]: [\n PreviewMain,\n GraphqlMain,\n Workspace,\n PkgMain,\n CompilerMain,\n LoggerMain,\n DevFilesMain,\n EnvsMain\n ],\n config: DocsConfig,\n [docPropSlot, docReaderSlot]: [DocPropSlot, DocReaderSlot]\n ) {\n const logger = loggerAspect.createLogger(DocsAspect.id);\n const docs = new DocsMain(\n config.patterns,\n\n preview,\n\n pkg,\n\n compiler,\n\n workspace,\n\n logger,\n\n devFiles,\n\n envs,\n\n docPropSlot,\n\n docReaderSlot\n );\n docs.registerDocReader(new DefaultDocReader(pkg, compiler, workspace));\n devFiles.registerDevPattern(docs.getDevPatternToRegister());\n\n if (workspace) {\n workspace.onComponentLoad(async (component, opts) => {\n if (opts?.loadDocs === false) return undefined;\n // const docFiles = await docs.computeDocs(component);\n const doc = await docs.computeDoc(component);\n\n return {\n doc: doc?.toObject(),\n // docFiles\n };\n });\n }\n\n graphql.register(docsSchema(docs));\n\n preview.registerDefinition(new DocsPreviewDefinition(docs));\n return docs;\n }\n}\n\nDocsAspect.addRuntime(DocsMain);\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.918/dist/docs.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.918/dist/docs.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.920/dist/docs.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.docs_docs@0.0.920/dist/docs.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/docs",
3
- "version": "0.0.918",
3
+ "version": "0.0.920",
4
4
  "homepage": "https://bit.dev/teambit/docs/docs",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.docs",
8
8
  "name": "docs",
9
- "version": "0.0.918"
9
+ "version": "0.0.920"
10
10
  },
11
11
  "dependencies": {
12
12
  "graphql-tag": "2.12.1",
@@ -15,25 +15,25 @@
15
15
  "@babel/runtime": "7.20.0",
16
16
  "core-js": "^3.0.0",
17
17
  "@teambit/harmony": "0.3.3",
18
- "@teambit/compiler": "0.0.918",
19
- "@teambit/component": "0.0.918",
18
+ "@teambit/compiler": "0.0.920",
19
+ "@teambit/component": "0.0.920",
20
20
  "@teambit/docs.entities.doc": "0.0.12",
21
- "@teambit/pkg": "0.0.918",
22
- "@teambit/workspace": "0.0.918",
23
- "@teambit/docs.ui.overview-compare": "0.0.132",
24
- "@teambit/cli": "0.0.614",
25
- "@teambit/dev-files": "0.0.918",
26
- "@teambit/envs": "0.0.918",
27
- "@teambit/graphql": "0.0.918",
28
- "@teambit/logger": "0.0.707",
29
- "@teambit/preview": "0.0.918",
21
+ "@teambit/pkg": "0.0.920",
22
+ "@teambit/workspace": "0.0.920",
23
+ "@teambit/docs.ui.overview-compare": "0.0.134",
24
+ "@teambit/cli": "0.0.616",
25
+ "@teambit/dev-files": "0.0.920",
26
+ "@teambit/envs": "0.0.920",
27
+ "@teambit/graphql": "0.0.920",
28
+ "@teambit/logger": "0.0.709",
29
+ "@teambit/preview": "0.0.920",
30
30
  "@teambit/component-id": "0.0.425",
31
- "@teambit/component-compare": "0.0.166",
32
- "@teambit/ui": "0.0.918",
33
- "@teambit/pubsub": "0.0.918",
34
- "@teambit/component.ui.component-meta": "0.0.182",
35
- "@teambit/design.ui.surfaces.status-message-card": "0.0.15",
36
- "@teambit/preview.ui.component-preview": "0.0.506"
31
+ "@teambit/component-compare": "0.0.168",
32
+ "@teambit/ui": "0.0.920",
33
+ "@teambit/pubsub": "0.0.920",
34
+ "@teambit/component.ui.component-meta": "0.0.184",
35
+ "@teambit/design.ui.surfaces.status-message-card": "0.0.16",
36
+ "@teambit/preview.ui.component-preview": "0.0.507"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/react-dom": "^17.0.5",
@@ -47,7 +47,7 @@
47
47
  "@teambit/docs.content.docs-overview": "1.95.9"
48
48
  },
49
49
  "peerDependencies": {
50
- "@teambit/legacy": "1.0.395",
50
+ "@teambit/legacy": "1.0.397",
51
51
  "react-dom": "^16.8.0 || ^17.0.0",
52
52
  "react": "^16.8.0 || ^17.0.0"
53
53
  },