@teambit/component 0.0.1110 → 0.0.1112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/aspect-entry.js.map +1 -1
  2. package/dist/aspect-list.js.map +1 -1
  3. package/dist/aspect.section.js.map +1 -1
  4. package/dist/component-fs.js.map +1 -1
  5. package/dist/component-map/component-map.js.map +1 -1
  6. package/dist/component-map/index.js.map +1 -1
  7. package/dist/component-meta.js.map +1 -1
  8. package/dist/component.aspect.js.map +1 -1
  9. package/dist/component.composition.js.map +1 -1
  10. package/dist/component.graphql.js.map +1 -1
  11. package/dist/component.js +1 -4
  12. package/dist/component.js.map +1 -1
  13. package/dist/component.main.runtime.js.map +1 -1
  14. package/dist/component.route.js +0 -1
  15. package/dist/component.route.js.map +1 -1
  16. package/dist/component.ui.runtime.js +5 -7
  17. package/dist/component.ui.runtime.js.map +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/dependencies/dependencies.js.map +1 -1
  20. package/dist/dependencies/index.js.map +1 -1
  21. package/dist/exceptions/could-not-find-latest.js.map +1 -1
  22. package/dist/exceptions/host-not-found.js.map +1 -1
  23. package/dist/exceptions/index.js.map +1 -1
  24. package/dist/exceptions/main-file-not-found.js.map +1 -1
  25. package/dist/exceptions/nothing-to-snap.js.map +1 -1
  26. package/dist/history-graph.js.map +1 -1
  27. package/dist/host/component-host-model.js.map +1 -1
  28. package/dist/host/index.js.map +1 -1
  29. package/dist/host/use-component-host.js.map +1 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/{preview-1689736586631.js → preview-1689909446382.js} +2 -2
  32. package/dist/section/index.js.map +1 -1
  33. package/dist/show/extensions.fragment.js.map +1 -1
  34. package/dist/show/files.fragment.js.map +1 -1
  35. package/dist/show/id.fragment.js.map +1 -1
  36. package/dist/show/index.js.map +1 -1
  37. package/dist/show/main-file.fragment.js.map +1 -1
  38. package/dist/show/name.fragment.js.map +1 -1
  39. package/dist/show/scope.fragment.js.map +1 -1
  40. package/dist/show/show.cmd.js.map +1 -1
  41. package/dist/snap/index.js.map +1 -1
  42. package/dist/snap/snap.js.map +1 -1
  43. package/dist/state.js.map +1 -1
  44. package/dist/store.js.map +1 -1
  45. package/dist/tag/index.js.map +1 -1
  46. package/dist/tag/tag.js.map +1 -1
  47. package/dist/tag-map.js.map +1 -1
  48. package/dist/ui/aspect-page/aspect-page.js.map +1 -1
  49. package/dist/ui/aspect-page/index.js.map +1 -1
  50. package/dist/ui/component-error/component-error.js.map +1 -1
  51. package/dist/ui/component-error/index.js.map +1 -1
  52. package/dist/ui/component-model/component-model.js +0 -6
  53. package/dist/ui/component-model/component-model.js.map +1 -1
  54. package/dist/ui/component-model/index.js.map +1 -1
  55. package/dist/ui/component-searcher/component-result.js.map +1 -1
  56. package/dist/ui/component-searcher/component-searcher.js.map +1 -1
  57. package/dist/ui/component-searcher/index.js.map +1 -1
  58. package/dist/ui/component.js.map +1 -1
  59. package/dist/ui/context/component-context.js.map +1 -1
  60. package/dist/ui/context/component-provider.js.map +1 -1
  61. package/dist/ui/context/index.js.map +1 -1
  62. package/dist/ui/index.js.map +1 -1
  63. package/dist/ui/menu/index.js.map +1 -1
  64. package/dist/ui/menu/menu-nav.js.map +1 -1
  65. package/dist/ui/menu/menu.js.map +1 -1
  66. package/dist/ui/top-bar-nav/index.js.map +1 -1
  67. package/dist/ui/top-bar-nav/top-bar-nav.js.map +1 -1
  68. package/dist/ui/use-component-from-location.js.map +1 -1
  69. package/dist/ui/use-component-logs.js.map +1 -1
  70. package/dist/ui/use-component-query.js.map +1 -1
  71. package/dist/ui/use-component.fragments.js.map +1 -1
  72. package/dist/ui/use-component.js.map +1 -1
  73. package/dist/ui/use-component.utils.js.map +1 -1
  74. package/package-tar/teambit-component-0.0.1112.tgz +0 -0
  75. package/package.json +21 -21
  76. package/package-tar/teambit-component-0.0.1110.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["AspectEntry","constructor","id","legacyEntry","legacy","isLegacy","_this$config","config","__legacy","data","isRemoved","val","transform","newData","newEntry","clone","serialize","toString","icon","exports"],"sources":["aspect-entry.ts"],"sourcesContent":["/**\n * avoid importing any (non-type) legacy code here. otherwise, PreviewTask will throw cryptic errors\n */\n\nimport type { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ComponentID } from '@teambit/component-id';\nimport { RawComponentMetadata } from './component-interface';\n\nexport type Serializable = {\n toString(): string;\n};\n\nexport type SerializableMap = {\n [key: string]: Serializable;\n};\n\nexport type AspectData = {\n [key: string]: any;\n};\n\nexport type ResolveComponentIdFunc = (id: string) => Promise<ComponentID>;\nexport class AspectEntry {\n constructor(public id: ComponentID, private legacyEntry: ExtensionDataEntry) {}\n\n get legacy() {\n return this.legacyEntry;\n }\n\n get isLegacy(): boolean {\n if (this.config?.__legacy) return true;\n return false;\n }\n\n get config() {\n return this.legacy.config;\n }\n\n set config(config) {\n this.legacy.config = config;\n }\n\n get data(): { [key: string]: any } {\n return this.legacy.data;\n }\n\n get isRemoved(): boolean {\n return this.legacy.isRemoved;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n set data(val: { [key: string]: any }) {\n this.legacy.data = val;\n }\n\n transform(newData: SerializableMap): AspectEntry {\n const newEntry = this.clone();\n newEntry.data = newData;\n return new AspectEntry(this.id, newEntry.legacy);\n }\n\n clone(): AspectEntry {\n return new AspectEntry(this.id, this.legacyEntry.clone());\n }\n\n serialize(): RawComponentMetadata {\n return {\n id: this.id.toString(),\n config: this.config,\n data: this.data,\n icon: 'https://static.bit.dev/extensions-icons/default.svg', // TODO @gilad - once you connect the icon here please use this url as the default icon\n };\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAmBO,MAAMA,WAAW,CAAC;EACvBC,WAAWA,CAAQC,EAAe,EAAUC,WAA+B,EAAE;IAAA,KAA1DD,EAAe,GAAfA,EAAe;IAAA,KAAUC,WAA+B,GAA/BA,WAA+B;EAAG;EAE9E,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,WAAW;EACzB;EAEA,IAAIE,QAAQA,CAAA,EAAY;IAAA,IAAAC,YAAA;IACtB,KAAAA,YAAA,GAAI,IAAI,CAACC,MAAM,cAAAD,YAAA,eAAXA,YAAA,CAAaE,QAAQ,EAAE,OAAO,IAAI;IACtC,OAAO,KAAK;EACd;EAEA,IAAID,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACH,MAAM,CAACG,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAM,EAAE;IACjB,IAAI,CAACH,MAAM,CAACG,MAAM,GAAGA,MAAM;EAC7B;EAEA,IAAIE,IAAIA,CAAA,EAA2B;IACjC,OAAO,IAAI,CAACL,MAAM,CAACK,IAAI;EACzB;EAEA,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACN,MAAM,CAACM,SAAS;EAC9B;;EAEA;EACA,IAAID,IAAIA,CAACE,GAA2B,EAAE;IACpC,IAAI,CAACP,MAAM,CAACK,IAAI,GAAGE,GAAG;EACxB;EAEAC,SAASA,CAACC,OAAwB,EAAe;IAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;IAC7BD,QAAQ,CAACL,IAAI,GAAGI,OAAO;IACvB,OAAO,IAAIb,WAAW,CAAC,IAAI,CAACE,EAAE,EAAEY,QAAQ,CAACV,MAAM,CAAC;EAClD;EAEAW,KAAKA,CAAA,EAAgB;IACnB,OAAO,IAAIf,WAAW,CAAC,IAAI,CAACE,EAAE,EAAE,IAAI,CAACC,WAAW,CAACY,KAAK,CAAC,CAAC,CAAC;EAC3D;EAEAC,SAASA,CAAA,EAAyB;IAChC,OAAO;MACLd,EAAE,EAAE,IAAI,CAACA,EAAE,CAACe,QAAQ,CAAC,CAAC;MACtBV,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBE,IAAI,EAAE,IAAI,CAACA,IAAI;MACfS,IAAI,EAAE,qDAAqD,CAAE;IAC/D,CAAC;EACH;AACF;AAACC,OAAA,CAAAnB,WAAA,GAAAA,WAAA"}
1
+ {"version":3,"names":["AspectEntry","constructor","id","legacyEntry","legacy","isLegacy","config","__legacy","data","isRemoved","val","transform","newData","newEntry","clone","serialize","toString","icon"],"sources":["aspect-entry.ts"],"sourcesContent":["/**\n * avoid importing any (non-type) legacy code here. otherwise, PreviewTask will throw cryptic errors\n */\n\nimport type { ExtensionDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ComponentID } from '@teambit/component-id';\nimport { RawComponentMetadata } from './component-interface';\n\nexport type Serializable = {\n toString(): string;\n};\n\nexport type SerializableMap = {\n [key: string]: Serializable;\n};\n\nexport type AspectData = {\n [key: string]: any;\n};\n\nexport type ResolveComponentIdFunc = (id: string) => Promise<ComponentID>;\nexport class AspectEntry {\n constructor(public id: ComponentID, private legacyEntry: ExtensionDataEntry) {}\n\n get legacy() {\n return this.legacyEntry;\n }\n\n get isLegacy(): boolean {\n if (this.config?.__legacy) return true;\n return false;\n }\n\n get config() {\n return this.legacy.config;\n }\n\n set config(config) {\n this.legacy.config = config;\n }\n\n get data(): { [key: string]: any } {\n return this.legacy.data;\n }\n\n get isRemoved(): boolean {\n return this.legacy.isRemoved;\n }\n\n // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n set data(val: { [key: string]: any }) {\n this.legacy.data = val;\n }\n\n transform(newData: SerializableMap): AspectEntry {\n const newEntry = this.clone();\n newEntry.data = newData;\n return new AspectEntry(this.id, newEntry.legacy);\n }\n\n clone(): AspectEntry {\n return new AspectEntry(this.id, this.legacyEntry.clone());\n }\n\n serialize(): RawComponentMetadata {\n return {\n id: this.id.toString(),\n config: this.config,\n data: this.data,\n icon: 'https://static.bit.dev/extensions-icons/default.svg', // TODO @gilad - once you connect the icon here please use this url as the default icon\n };\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAmBO,MAAMA,WAAW,CAAC;EACvBC,WAAW,CAAQC,EAAe,EAAUC,WAA+B,EAAE;IAAA,KAA1DD,EAAe,GAAfA,EAAe;IAAA,KAAUC,WAA+B,GAA/BA,WAA+B;EAAG;EAE9E,IAAIC,MAAM,GAAG;IACX,OAAO,IAAI,CAACD,WAAW;EACzB;EAEA,IAAIE,QAAQ,GAAY;IAAA;IACtB,oBAAI,IAAI,CAACC,MAAM,yCAAX,aAAaC,QAAQ,EAAE,OAAO,IAAI;IACtC,OAAO,KAAK;EACd;EAEA,IAAID,MAAM,GAAG;IACX,OAAO,IAAI,CAACF,MAAM,CAACE,MAAM;EAC3B;EAEA,IAAIA,MAAM,CAACA,MAAM,EAAE;IACjB,IAAI,CAACF,MAAM,CAACE,MAAM,GAAGA,MAAM;EAC7B;EAEA,IAAIE,IAAI,GAA2B;IACjC,OAAO,IAAI,CAACJ,MAAM,CAACI,IAAI;EACzB;EAEA,IAAIC,SAAS,GAAY;IACvB,OAAO,IAAI,CAACL,MAAM,CAACK,SAAS;EAC9B;;EAEA;EACA,IAAID,IAAI,CAACE,GAA2B,EAAE;IACpC,IAAI,CAACN,MAAM,CAACI,IAAI,GAAGE,GAAG;EACxB;EAEAC,SAAS,CAACC,OAAwB,EAAe;IAC/C,MAAMC,QAAQ,GAAG,IAAI,CAACC,KAAK,EAAE;IAC7BD,QAAQ,CAACL,IAAI,GAAGI,OAAO;IACvB,OAAO,IAAIZ,WAAW,CAAC,IAAI,CAACE,EAAE,EAAEW,QAAQ,CAACT,MAAM,CAAC;EAClD;EAEAU,KAAK,GAAgB;IACnB,OAAO,IAAId,WAAW,CAAC,IAAI,CAACE,EAAE,EAAE,IAAI,CAACC,WAAW,CAACW,KAAK,EAAE,CAAC;EAC3D;EAEAC,SAAS,GAAyB;IAChC,OAAO;MACLb,EAAE,EAAE,IAAI,CAACA,EAAE,CAACc,QAAQ,EAAE;MACtBV,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBE,IAAI,EAAE,IAAI,CAACA,IAAI;MACfS,IAAI,EAAE,qDAAqD,CAAE;IAC/D,CAAC;EACH;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_extensionData","data","require","_componentId","_aspectEntry","AspectList","constructor","entries","addEntry","aspectId","extensionDataEntry","ExtensionDataEntry","undefined","_legacy","entry","AspectEntry","push","withoutEntries","aspectIds","filter","includes","legacy","stringId","ids","list","map","id","toString","get","find","toStringWithoutVersion","ignoreVersion","aspectEntry","isEqual","predicate","pmap","entriesP","Promise","all","toConfigObject","res","forEach","config","removeInternalConfigFields","serialize","serializedEntries","length","toLegacy","legacyEntries","ExtensionDataList","fromArray","stringIds","clone","fromLegacyExtensions","legacyDataList","scope","newEntries","getAspectId","exports","extensionId","name","ComponentID","fromString","fromLegacy","Error"],"sources":["aspect-list.ts"],"sourcesContent":["import {\n ExtensionDataList,\n ExtensionDataEntry,\n removeInternalConfigFields,\n} from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ComponentID } from '@teambit/component-id';\nimport { AspectEntry, SerializableMap } from './aspect-entry';\n\n/**\n * list of aspects, each may have data and artifacts saved per component.\n */\nexport class AspectList {\n constructor(readonly entries: AspectEntry[]) {}\n\n addEntry(aspectId: ComponentID, data: SerializableMap = {}) {\n const extensionDataEntry = new ExtensionDataEntry(undefined, aspectId._legacy, undefined, {}, data);\n const entry = new AspectEntry(aspectId, extensionDataEntry);\n this.entries.push(entry);\n return entry;\n }\n\n /**\n * transform an aspect list into a new one without the given aspect ids\n */\n withoutEntries(aspectIds: string[]): AspectList {\n const entries = this.entries.filter((entry) => !aspectIds.includes(entry.legacy.stringId));\n return new AspectList(entries);\n }\n\n /**\n * get all ids as strings from the aspect list.\n */\n get ids(): string[] {\n const list = this.entries.map((entry) => entry.id.toString());\n return list;\n }\n\n /**\n * get an aspect from the list using a serialized ID.\n */\n get(id: string): AspectEntry | undefined {\n return this.entries.find((entry) => {\n return entry.legacy.stringId === id || entry.id.toStringWithoutVersion() === id;\n });\n }\n\n /**\n * find aspect by component ID.\n */\n find(id: ComponentID, ignoreVersion = false): AspectEntry | undefined {\n return this.entries.find((aspectEntry) => {\n return id.isEqual(aspectEntry.id, { ignoreVersion });\n });\n }\n\n /**\n * transform an aspect list into a new one.\n */\n map(predicate: (entry: AspectEntry) => AspectEntry) {\n const entries = this.entries.map(predicate);\n return new AspectList(entries);\n }\n\n /**\n * transform an aspect list into a new one.\n */\n async pmap(predicate: (entry: AspectEntry) => Promise<AspectEntry>) {\n const entriesP = this.entries.map(predicate);\n const entries = await Promise.all(entriesP);\n return new AspectList(entries);\n }\n\n toConfigObject() {\n const res = {};\n this.entries.forEach((entry) => {\n if (entry.config) {\n res[entry.id.toString()] = removeInternalConfigFields(entry.config);\n }\n });\n return res;\n }\n\n serialize() {\n const serializedEntries = this.entries.map((entry) => entry.serialize());\n return serializedEntries;\n }\n\n filter(ids?: string[]): AspectList {\n if (!ids?.length) return new AspectList(this.entries);\n const entries = this.entries.filter((aspectEntry) => {\n return ids?.includes(aspectEntry.id.toStringWithoutVersion());\n });\n return new AspectList(entries);\n }\n\n toLegacy(): ExtensionDataList {\n const legacyEntries = this.entries.map((entry) => entry.legacy);\n return ExtensionDataList.fromArray(legacyEntries);\n }\n\n stringIds(): string[] {\n const ids = this.entries.map((entry) => entry.id.toString());\n return ids;\n }\n\n clone(): AspectList {\n return new AspectList(this.entries.map((entry) => entry.clone()));\n }\n\n static fromLegacyExtensions(legacyDataList: ExtensionDataList, scope?: string): AspectList {\n const newEntries = legacyDataList.map((entry) => {\n return new AspectEntry(getAspectId(entry, scope), entry);\n });\n\n return new AspectList(newEntries);\n }\n}\n\nfunction getAspectId(entry: ExtensionDataEntry, scope?: string) {\n if (!entry.extensionId && entry.name) return ComponentID.fromString(entry.name);\n if (entry.extensionId) return ComponentID.fromLegacy(entry.extensionId, scope);\n throw new Error('aspect cannot be loaded without setting an ID');\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["AspectList","constructor","entries","addEntry","aspectId","data","extensionDataEntry","ExtensionDataEntry","undefined","_legacy","entry","AspectEntry","push","withoutEntries","aspectIds","filter","includes","legacy","stringId","ids","list","map","id","toString","get","find","toStringWithoutVersion","ignoreVersion","aspectEntry","isEqual","predicate","pmap","entriesP","Promise","all","toConfigObject","res","forEach","config","removeInternalConfigFields","serialize","serializedEntries","length","toLegacy","legacyEntries","ExtensionDataList","fromArray","stringIds","clone","fromLegacyExtensions","legacyDataList","scope","newEntries","getAspectId","extensionId","name","ComponentID","fromString","fromLegacy","Error"],"sources":["aspect-list.ts"],"sourcesContent":["import {\n ExtensionDataList,\n ExtensionDataEntry,\n removeInternalConfigFields,\n} from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { ComponentID } from '@teambit/component-id';\nimport { AspectEntry, SerializableMap } from './aspect-entry';\n\n/**\n * list of aspects, each may have data and artifacts saved per component.\n */\nexport class AspectList {\n constructor(readonly entries: AspectEntry[]) {}\n\n addEntry(aspectId: ComponentID, data: SerializableMap = {}) {\n const extensionDataEntry = new ExtensionDataEntry(undefined, aspectId._legacy, undefined, {}, data);\n const entry = new AspectEntry(aspectId, extensionDataEntry);\n this.entries.push(entry);\n return entry;\n }\n\n /**\n * transform an aspect list into a new one without the given aspect ids\n */\n withoutEntries(aspectIds: string[]): AspectList {\n const entries = this.entries.filter((entry) => !aspectIds.includes(entry.legacy.stringId));\n return new AspectList(entries);\n }\n\n /**\n * get all ids as strings from the aspect list.\n */\n get ids(): string[] {\n const list = this.entries.map((entry) => entry.id.toString());\n return list;\n }\n\n /**\n * get an aspect from the list using a serialized ID.\n */\n get(id: string): AspectEntry | undefined {\n return this.entries.find((entry) => {\n return entry.legacy.stringId === id || entry.id.toStringWithoutVersion() === id;\n });\n }\n\n /**\n * find aspect by component ID.\n */\n find(id: ComponentID, ignoreVersion = false): AspectEntry | undefined {\n return this.entries.find((aspectEntry) => {\n return id.isEqual(aspectEntry.id, { ignoreVersion });\n });\n }\n\n /**\n * transform an aspect list into a new one.\n */\n map(predicate: (entry: AspectEntry) => AspectEntry) {\n const entries = this.entries.map(predicate);\n return new AspectList(entries);\n }\n\n /**\n * transform an aspect list into a new one.\n */\n async pmap(predicate: (entry: AspectEntry) => Promise<AspectEntry>) {\n const entriesP = this.entries.map(predicate);\n const entries = await Promise.all(entriesP);\n return new AspectList(entries);\n }\n\n toConfigObject() {\n const res = {};\n this.entries.forEach((entry) => {\n if (entry.config) {\n res[entry.id.toString()] = removeInternalConfigFields(entry.config);\n }\n });\n return res;\n }\n\n serialize() {\n const serializedEntries = this.entries.map((entry) => entry.serialize());\n return serializedEntries;\n }\n\n filter(ids?: string[]): AspectList {\n if (!ids?.length) return new AspectList(this.entries);\n const entries = this.entries.filter((aspectEntry) => {\n return ids?.includes(aspectEntry.id.toStringWithoutVersion());\n });\n return new AspectList(entries);\n }\n\n toLegacy(): ExtensionDataList {\n const legacyEntries = this.entries.map((entry) => entry.legacy);\n return ExtensionDataList.fromArray(legacyEntries);\n }\n\n stringIds(): string[] {\n const ids = this.entries.map((entry) => entry.id.toString());\n return ids;\n }\n\n clone(): AspectList {\n return new AspectList(this.entries.map((entry) => entry.clone()));\n }\n\n static fromLegacyExtensions(legacyDataList: ExtensionDataList, scope?: string): AspectList {\n const newEntries = legacyDataList.map((entry) => {\n return new AspectEntry(getAspectId(entry, scope), entry);\n });\n\n return new AspectList(newEntries);\n }\n}\n\nfunction getAspectId(entry: ExtensionDataEntry, scope?: string) {\n if (!entry.extensionId && entry.name) return ComponentID.fromString(entry.name);\n if (entry.extensionId) return ComponentID.fromLegacy(entry.extensionId, scope);\n throw new Error('aspect cannot be loaded without setting an ID');\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_uiFoundationUi","_aspectPage","AspectSection","constructor","_defineProperty2","default","path","element","createElement","AspectPage","href","children","MenuWidgetIcon","icon","tooltipContent","displayName","exports"],"sources":["aspect.section.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';\nimport { Section } from './section';\nimport { AspectPage } from './ui/aspect-page';\n\nexport class AspectSection implements Section {\n route = {\n path: '~aspect',\n element: <AspectPage />,\n };\n navigationLink = {\n href: '~aspect',\n children: <MenuWidgetIcon icon=\"configuration\" tooltipContent=\"Configuration\" />,\n displayName: 'Configuration',\n };\n order = 50;\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,gBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMK,aAAa,CAAoB;EAAAC,YAAA;IAAA,IAAAC,gBAAA,GAAAC,OAAA,iBACpC;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,eAAEX,MAAA,GAAAS,OAAA,CAAAG,aAAA,CAACP,WAAA,GAAAQ,UAAU,MAAE;IACxB,CAAC;IAAA,IAAAL,gBAAA,GAAAC,OAAA,0BACgB;MACfK,IAAI,EAAE,SAAS;MACfC,QAAQ,eAAEf,MAAA,GAAAS,OAAA,CAAAG,aAAA,CAACR,eAAA,GAAAY,cAAc;QAACC,IAAI,EAAC,eAAe;QAACC,cAAc,EAAC;MAAe,CAAE,CAAC;MAChFC,WAAW,EAAE;IACf,CAAC;IAAA,IAAAX,gBAAA,GAAAC,OAAA,iBACO,EAAE;EAAA;AACZ;AAACW,OAAA,CAAAd,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["AspectSection","path","element","href","children","displayName"],"sources":["aspect.section.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';\nimport { Section } from './section';\nimport { AspectPage } from './ui/aspect-page';\n\nexport class AspectSection implements Section {\n route = {\n path: '~aspect',\n element: <AspectPage />,\n };\n navigationLink = {\n href: '~aspect',\n children: <MenuWidgetIcon icon=\"configuration\" tooltipContent=\"Configuration\" />,\n displayName: 'Configuration',\n };\n order = 50;\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,aAAa,CAAoB;EAAA;IAAA,+CACpC;MACNC,IAAI,EAAE,SAAS;MACfC,OAAO,eAAE,+BAAC,wBAAU;IACtB,CAAC;IAAA,wDACgB;MACfC,IAAI,EAAE,SAAS;MACfC,QAAQ,eAAE,+BAAC,gCAAc;QAAC,IAAI,EAAC,eAAe;QAAC,cAAc,EAAC;MAAe,EAAG;MAChFC,WAAW,EAAE;IACf,CAAC;IAAA,+CACO,EAAE;EAAA;AACZ;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_anyFs","data","require","_eol","_path","_interopRequireDefault","_toolboxPath","ComponentFS","MemoryFS","constructor","files","hash","byRegex","extension","filter","file","path","match","byGlob","patterns","includePatterns","excludePatterns","splitPatterns","matchPatterns","relative","toObject","map","contents","fromVinyls","fs","forEach","dirPath","relativeDir","startsWith","join","mkdirpSync","writeFileSync","auto","exports","default"],"sources":["component-fs.ts"],"sourcesContent":["import { MemoryFS } from '@teambit/any-fs';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { auto } from '@teambit/legacy/dist/utils/eol';\nimport path from 'path';\nimport { matchPatterns, splitPatterns } from '@teambit/toolbox.path.match-patterns';\n\n/**\n * The virtual component filesystem\n */\nexport default class ComponentFS extends MemoryFS {\n constructor(\n /**\n * array of all fs files.\n */\n readonly files: AbstractVinyl[]\n ) {\n super();\n }\n /**\n * hash to represent all contents within this filesystem volume.\n */\n get hash() {\n return '';\n }\n\n /**\n * filter all component files by regex.\n */\n byRegex(extension: RegExp): AbstractVinyl[] {\n return this.files.filter((file) => file.path.match(extension));\n }\n\n /**\n * filter all files using an array of glob patterns.\n */\n byGlob(patterns: string[]) {\n const { includePatterns, excludePatterns } = splitPatterns(patterns);\n\n const files = this.files.filter((file) => {\n return matchPatterns(file.relative, includePatterns, excludePatterns);\n });\n\n return files;\n }\n\n toObject() {\n return this.files.map((file) => {\n return {\n path: file.path,\n contents: file.contents,\n };\n });\n }\n\n static fromVinyls(files: AbstractVinyl[]) {\n const fs = new ComponentFS(files);\n files.forEach((file) => {\n let dirPath = file.relativeDir;\n if (!dirPath.startsWith('/')) dirPath = path.join('/', dirPath);\n fs.mkdirpSync(dirPath);\n fs.writeFileSync(`/${file.relative}`, auto(file.contents || ''));\n });\n\n return fs;\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAE,KAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,IAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,MAAA;EAAA,MAAAH,IAAA,GAAAI,sBAAA,CAAAH,OAAA;EAAAE,KAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,aAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,YAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA;AACA;AACA;AACe,MAAMM,WAAW,SAASC,iBAAQ,CAAC;EAChDC,WAAWA;EACT;AACJ;AACA;EACaC,KAAsB,EAC/B;IACA,KAAK,CAAC,CAAC;IAAC,KAFCA,KAAsB,GAAtBA,KAAsB;EAGjC;EACA;AACF;AACA;EACE,IAAIC,IAAIA,CAAA,EAAG;IACT,OAAO,EAAE;EACX;;EAEA;AACF;AACA;EACEC,OAAOA,CAACC,SAAiB,EAAmB;IAC1C,OAAO,IAAI,CAACH,KAAK,CAACI,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAC,CAAC;EAChE;;EAEA;AACF;AACA;EACEK,MAAMA,CAACC,QAAkB,EAAE;IACzB,MAAM;MAAEC,eAAe;MAAEC;IAAgB,CAAC,GAAG,IAAAC,4BAAa,EAACH,QAAQ,CAAC;IAEpE,MAAMT,KAAK,GAAG,IAAI,CAACA,KAAK,CAACI,MAAM,CAAEC,IAAI,IAAK;MACxC,OAAO,IAAAQ,4BAAa,EAACR,IAAI,CAACS,QAAQ,EAAEJ,eAAe,EAAEC,eAAe,CAAC;IACvE,CAAC,CAAC;IAEF,OAAOX,KAAK;EACd;EAEAe,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACf,KAAK,CAACgB,GAAG,CAAEX,IAAI,IAAK;MAC9B,OAAO;QACLC,IAAI,EAAED,IAAI,CAACC,IAAI;QACfW,QAAQ,EAAEZ,IAAI,CAACY;MACjB,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,OAAOC,UAAUA,CAAClB,KAAsB,EAAE;IACxC,MAAMmB,EAAE,GAAG,IAAItB,WAAW,CAACG,KAAK,CAAC;IACjCA,KAAK,CAACoB,OAAO,CAAEf,IAAI,IAAK;MACtB,IAAIgB,OAAO,GAAGhB,IAAI,CAACiB,WAAW;MAC9B,IAAI,CAACD,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,EAAEF,OAAO,GAAGf,eAAI,CAACkB,IAAI,CAAC,GAAG,EAAEH,OAAO,CAAC;MAC/DF,EAAE,CAACM,UAAU,CAACJ,OAAO,CAAC;MACtBF,EAAE,CAACO,aAAa,CAAE,IAAGrB,IAAI,CAACS,QAAS,EAAC,EAAE,IAAAa,WAAI,EAACtB,IAAI,CAACY,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAOE,EAAE;EACX;AACF;AAACS,OAAA,CAAAC,OAAA,GAAAhC,WAAA"}
1
+ {"version":3,"names":["ComponentFS","MemoryFS","constructor","files","hash","byRegex","extension","filter","file","path","match","byGlob","patterns","includePatterns","excludePatterns","splitPatterns","matchPatterns","relative","toObject","map","contents","fromVinyls","fs","forEach","dirPath","relativeDir","startsWith","join","mkdirpSync","writeFileSync","auto"],"sources":["component-fs.ts"],"sourcesContent":["import { MemoryFS } from '@teambit/any-fs';\nimport type { AbstractVinyl } from '@teambit/legacy/dist/consumer/component/sources';\nimport { auto } from '@teambit/legacy/dist/utils/eol';\nimport path from 'path';\nimport { matchPatterns, splitPatterns } from '@teambit/toolbox.path.match-patterns';\n\n/**\n * The virtual component filesystem\n */\nexport default class ComponentFS extends MemoryFS {\n constructor(\n /**\n * array of all fs files.\n */\n readonly files: AbstractVinyl[]\n ) {\n super();\n }\n /**\n * hash to represent all contents within this filesystem volume.\n */\n get hash() {\n return '';\n }\n\n /**\n * filter all component files by regex.\n */\n byRegex(extension: RegExp): AbstractVinyl[] {\n return this.files.filter((file) => file.path.match(extension));\n }\n\n /**\n * filter all files using an array of glob patterns.\n */\n byGlob(patterns: string[]) {\n const { includePatterns, excludePatterns } = splitPatterns(patterns);\n\n const files = this.files.filter((file) => {\n return matchPatterns(file.relative, includePatterns, excludePatterns);\n });\n\n return files;\n }\n\n toObject() {\n return this.files.map((file) => {\n return {\n path: file.path,\n contents: file.contents,\n };\n });\n }\n\n static fromVinyls(files: AbstractVinyl[]) {\n const fs = new ComponentFS(files);\n files.forEach((file) => {\n let dirPath = file.relativeDir;\n if (!dirPath.startsWith('/')) dirPath = path.join('/', dirPath);\n fs.mkdirpSync(dirPath);\n fs.writeFileSync(`/${file.relative}`, auto(file.contents || ''));\n });\n\n return fs;\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;AACA;AACA;AACe,MAAMA,WAAW,SAASC,iBAAQ,CAAC;EAChDC,WAAW;EACT;AACJ;AACA;EACaC,KAAsB,EAC/B;IACA,KAAK,EAAE;IAAC,KAFCA,KAAsB,GAAtBA,KAAsB;EAGjC;EACA;AACF;AACA;EACE,IAAIC,IAAI,GAAG;IACT,OAAO,EAAE;EACX;;EAEA;AACF;AACA;EACEC,OAAO,CAACC,SAAiB,EAAmB;IAC1C,OAAO,IAAI,CAACH,KAAK,CAACI,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAACC,IAAI,CAACC,KAAK,CAACJ,SAAS,CAAC,CAAC;EAChE;;EAEA;AACF;AACA;EACEK,MAAM,CAACC,QAAkB,EAAE;IACzB,MAAM;MAAEC,eAAe;MAAEC;IAAgB,CAAC,GAAG,IAAAC,4BAAa,EAACH,QAAQ,CAAC;IAEpE,MAAMT,KAAK,GAAG,IAAI,CAACA,KAAK,CAACI,MAAM,CAAEC,IAAI,IAAK;MACxC,OAAO,IAAAQ,4BAAa,EAACR,IAAI,CAACS,QAAQ,EAAEJ,eAAe,EAAEC,eAAe,CAAC;IACvE,CAAC,CAAC;IAEF,OAAOX,KAAK;EACd;EAEAe,QAAQ,GAAG;IACT,OAAO,IAAI,CAACf,KAAK,CAACgB,GAAG,CAAEX,IAAI,IAAK;MAC9B,OAAO;QACLC,IAAI,EAAED,IAAI,CAACC,IAAI;QACfW,QAAQ,EAAEZ,IAAI,CAACY;MACjB,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,OAAOC,UAAU,CAAClB,KAAsB,EAAE;IACxC,MAAMmB,EAAE,GAAG,IAAItB,WAAW,CAACG,KAAK,CAAC;IACjCA,KAAK,CAACoB,OAAO,CAAEf,IAAI,IAAK;MACtB,IAAIgB,OAAO,GAAGhB,IAAI,CAACiB,WAAW;MAC9B,IAAI,CAACD,OAAO,CAACE,UAAU,CAAC,GAAG,CAAC,EAAEF,OAAO,GAAGf,eAAI,CAACkB,IAAI,CAAC,GAAG,EAAEH,OAAO,CAAC;MAC/DF,EAAE,CAACM,UAAU,CAACJ,OAAO,CAAC;MACtBF,EAAE,CAACO,aAAa,CAAE,IAAGrB,IAAI,CAACS,QAAS,EAAC,EAAE,IAAAa,WAAI,EAACtB,IAAI,CAACY,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC;IAEF,OAAOE,EAAE;EACX;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["ComponentMap","constructor","hashMap","byComponent","component","get","id","toString","components","toArray","map","getValueByComponentId","componentId","tuple","Array","from","values","predicate","tuples","value","newValue","Map","asyncMap","tuplesP","Promise","all","forEach","flattenValue","reduce","acc","concat","filter","asMap","keys","create","rawMap","newMap","data","as","exports"],"sources":["component-map.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Component } from '../component';\n\n/**\n * allows to index components -> values.\n */\nexport class ComponentMap<T> {\n constructor(readonly hashMap: Map<string, [Component, T]>) {}\n\n /**\n * @deprecated please use `get` instead\n */\n byComponent(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n get components() {\n return this.toArray().map(([component]) => component);\n }\n\n /**\n * get a value for a component.\n */\n get(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n /**\n * get a value by the component-id\n */\n getValueByComponentId(componentId: ComponentID): T | null {\n const tuple = this.hashMap.get(componentId.toString());\n if (!tuple) return null;\n return tuple[1];\n }\n\n /**\n * returns an array.\n */\n toArray() {\n return Array.from(this.hashMap.values());\n }\n\n /**\n * map entries and return a new component map.\n */\n map<NewType>(predicate: (value: T, component: Component) => NewType): ComponentMap<NewType> {\n const tuples: [string, [Component, NewType]][] = this.toArray().map(([component, value]) => {\n const newValue = predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n\n /**\n * map entries and return a new component map.\n */\n async asyncMap<NewType>(\n predicate: (value: T, component: Component) => Promise<NewType>\n ): Promise<ComponentMap<NewType>> {\n const tuplesP = this.toArray().map(async ([component, value]) => {\n const newValue = await predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n const tuples = await Promise.all(tuplesP);\n\n // @ts-ignore TODO: fix this type\n return new ComponentMap(new Map(tuples));\n }\n\n /**\n * similar to Array.forEach, but here you get both, the value and the component.\n */\n forEach(predicate: (value: T, component: Component) => void): void {\n this.toArray().forEach(([component, value]) => {\n predicate(value, component);\n });\n }\n\n /**\n * flatten values of all components into a single array.\n */\n flattenValue(): T[] {\n return this.toArray().reduce((acc: T[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * filter all components with empty values and return a new map.\n */\n filter(predicate: (value: T) => boolean): ComponentMap<T> {\n const tuples = this.toArray().filter(([, value]) => {\n return predicate(value);\n });\n\n const asMap: [string, [Component, T]][] = tuples.map(([component, value]) => {\n return [component.id.toString(), [component, value]];\n });\n\n return new ComponentMap(new Map(asMap));\n }\n\n /**\n * get all component ids.\n */\n keys() {\n return this.hashMap.keys();\n }\n\n static create<U>(rawMap: [Component, U][]) {\n const newMap: [string, [Component, U]][] = rawMap.map(([component, data]) => {\n return [component.id.toString(), [component, data]];\n });\n return new ComponentMap(new Map(newMap));\n }\n\n /**\n * create a component map from components and a value predicate.\n * @param components components to zip into the map.\n * @param predicate predicate for returning desired value.\n */\n static as<U>(components: Component[], predicate: (component: Component) => U): ComponentMap<U> {\n const tuples: [string, [Component, U]][] = components.map((component) => {\n return [component.id.toString(), [component, predicate(component)]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ComponentMap","constructor","hashMap","byComponent","component","get","id","toString","components","toArray","map","getValueByComponentId","componentId","tuple","Array","from","values","predicate","tuples","value","newValue","Map","asyncMap","tuplesP","Promise","all","forEach","flattenValue","reduce","acc","concat","filter","asMap","keys","create","rawMap","newMap","data","as"],"sources":["component-map.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Component } from '../component';\n\n/**\n * allows to index components -> values.\n */\nexport class ComponentMap<T> {\n constructor(readonly hashMap: Map<string, [Component, T]>) {}\n\n /**\n * @deprecated please use `get` instead\n */\n byComponent(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n get components() {\n return this.toArray().map(([component]) => component);\n }\n\n /**\n * get a value for a component.\n */\n get(component: Component) {\n return this.hashMap.get(component.id.toString());\n }\n\n /**\n * get a value by the component-id\n */\n getValueByComponentId(componentId: ComponentID): T | null {\n const tuple = this.hashMap.get(componentId.toString());\n if (!tuple) return null;\n return tuple[1];\n }\n\n /**\n * returns an array.\n */\n toArray() {\n return Array.from(this.hashMap.values());\n }\n\n /**\n * map entries and return a new component map.\n */\n map<NewType>(predicate: (value: T, component: Component) => NewType): ComponentMap<NewType> {\n const tuples: [string, [Component, NewType]][] = this.toArray().map(([component, value]) => {\n const newValue = predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n\n /**\n * map entries and return a new component map.\n */\n async asyncMap<NewType>(\n predicate: (value: T, component: Component) => Promise<NewType>\n ): Promise<ComponentMap<NewType>> {\n const tuplesP = this.toArray().map(async ([component, value]) => {\n const newValue = await predicate(value, component);\n return [component.id.toString(), [component, newValue]];\n });\n\n const tuples = await Promise.all(tuplesP);\n\n // @ts-ignore TODO: fix this type\n return new ComponentMap(new Map(tuples));\n }\n\n /**\n * similar to Array.forEach, but here you get both, the value and the component.\n */\n forEach(predicate: (value: T, component: Component) => void): void {\n this.toArray().forEach(([component, value]) => {\n predicate(value, component);\n });\n }\n\n /**\n * flatten values of all components into a single array.\n */\n flattenValue(): T[] {\n return this.toArray().reduce((acc: T[], [, value]) => {\n acc = acc.concat(value);\n return acc;\n }, []);\n }\n\n /**\n * filter all components with empty values and return a new map.\n */\n filter(predicate: (value: T) => boolean): ComponentMap<T> {\n const tuples = this.toArray().filter(([, value]) => {\n return predicate(value);\n });\n\n const asMap: [string, [Component, T]][] = tuples.map(([component, value]) => {\n return [component.id.toString(), [component, value]];\n });\n\n return new ComponentMap(new Map(asMap));\n }\n\n /**\n * get all component ids.\n */\n keys() {\n return this.hashMap.keys();\n }\n\n static create<U>(rawMap: [Component, U][]) {\n const newMap: [string, [Component, U]][] = rawMap.map(([component, data]) => {\n return [component.id.toString(), [component, data]];\n });\n return new ComponentMap(new Map(newMap));\n }\n\n /**\n * create a component map from components and a value predicate.\n * @param components components to zip into the map.\n * @param predicate predicate for returning desired value.\n */\n static as<U>(components: Component[], predicate: (component: Component) => U): ComponentMap<U> {\n const tuples: [string, [Component, U]][] = components.map((component) => {\n return [component.id.toString(), [component, predicate(component)]];\n });\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"],"mappings":";;;;;;;;AAGA;AACA;AACA;AACO,MAAMA,YAAY,CAAI;EAC3BC,WAAW,CAAUC,OAAoC,EAAE;IAAA,KAAtCA,OAAoC,GAApCA,OAAoC;EAAG;;EAE5D;AACF;AACA;EACEC,WAAW,CAACC,SAAoB,EAAE;IAChC,OAAO,IAAI,CAACF,OAAO,CAACG,GAAG,CAACD,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,CAAC;EAClD;EAEA,IAAIC,UAAU,GAAG;IACf,OAAO,IAAI,CAACC,OAAO,EAAE,CAACC,GAAG,CAAC,CAAC,CAACN,SAAS,CAAC,KAAKA,SAAS,CAAC;EACvD;;EAEA;AACF;AACA;EACEC,GAAG,CAACD,SAAoB,EAAE;IACxB,OAAO,IAAI,CAACF,OAAO,CAACG,GAAG,CAACD,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,CAAC;EAClD;;EAEA;AACF;AACA;EACEI,qBAAqB,CAACC,WAAwB,EAAY;IACxD,MAAMC,KAAK,GAAG,IAAI,CAACX,OAAO,CAACG,GAAG,CAACO,WAAW,CAACL,QAAQ,EAAE,CAAC;IACtD,IAAI,CAACM,KAAK,EAAE,OAAO,IAAI;IACvB,OAAOA,KAAK,CAAC,CAAC,CAAC;EACjB;;EAEA;AACF;AACA;EACEJ,OAAO,GAAG;IACR,OAAOK,KAAK,CAACC,IAAI,CAAC,IAAI,CAACb,OAAO,CAACc,MAAM,EAAE,CAAC;EAC1C;;EAEA;AACF;AACA;EACEN,GAAG,CAAUO,SAAsD,EAAyB;IAC1F,MAAMC,MAAwC,GAAG,IAAI,CAACT,OAAO,EAAE,CAACC,GAAG,CAAC,CAAC,CAACN,SAAS,EAAEe,KAAK,CAAC,KAAK;MAC1F,MAAMC,QAAQ,GAAGH,SAAS,CAACE,KAAK,EAAEf,SAAS,CAAC;MAC5C,OAAO,CAACA,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,EAAE,CAACH,SAAS,EAAEgB,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,OAAO,IAAIpB,YAAY,CAAC,IAAIqB,GAAG,CAACH,MAAM,CAAC,CAAC;EAC1C;;EAEA;AACF;AACA;EACE,MAAMI,QAAQ,CACZL,SAA+D,EAC/B;IAChC,MAAMM,OAAO,GAAG,IAAI,CAACd,OAAO,EAAE,CAACC,GAAG,CAAC,OAAO,CAACN,SAAS,EAAEe,KAAK,CAAC,KAAK;MAC/D,MAAMC,QAAQ,GAAG,MAAMH,SAAS,CAACE,KAAK,EAAEf,SAAS,CAAC;MAClD,OAAO,CAACA,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,EAAE,CAACH,SAAS,EAAEgB,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAMF,MAAM,GAAG,MAAMM,OAAO,CAACC,GAAG,CAACF,OAAO,CAAC;;IAEzC;IACA,OAAO,IAAIvB,YAAY,CAAC,IAAIqB,GAAG,CAACH,MAAM,CAAC,CAAC;EAC1C;;EAEA;AACF;AACA;EACEQ,OAAO,CAACT,SAAmD,EAAQ;IACjE,IAAI,CAACR,OAAO,EAAE,CAACiB,OAAO,CAAC,CAAC,CAACtB,SAAS,EAAEe,KAAK,CAAC,KAAK;MAC7CF,SAAS,CAACE,KAAK,EAAEf,SAAS,CAAC;IAC7B,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACEuB,YAAY,GAAQ;IAClB,OAAO,IAAI,CAAClB,OAAO,EAAE,CAACmB,MAAM,CAAC,CAACC,GAAQ,EAAE,GAAGV,KAAK,CAAC,KAAK;MACpDU,GAAG,GAAGA,GAAG,CAACC,MAAM,CAACX,KAAK,CAAC;MACvB,OAAOU,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;EACR;;EAEA;AACF;AACA;EACEE,MAAM,CAACd,SAAgC,EAAmB;IACxD,MAAMC,MAAM,GAAG,IAAI,CAACT,OAAO,EAAE,CAACsB,MAAM,CAAC,CAAC,GAAGZ,KAAK,CAAC,KAAK;MAClD,OAAOF,SAAS,CAACE,KAAK,CAAC;IACzB,CAAC,CAAC;IAEF,MAAMa,KAAiC,GAAGd,MAAM,CAACR,GAAG,CAAC,CAAC,CAACN,SAAS,EAAEe,KAAK,CAAC,KAAK;MAC3E,OAAO,CAACf,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,EAAE,CAACH,SAAS,EAAEe,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,OAAO,IAAInB,YAAY,CAAC,IAAIqB,GAAG,CAACW,KAAK,CAAC,CAAC;EACzC;;EAEA;AACF;AACA;EACEC,IAAI,GAAG;IACL,OAAO,IAAI,CAAC/B,OAAO,CAAC+B,IAAI,EAAE;EAC5B;EAEA,OAAOC,MAAM,CAAIC,MAAwB,EAAE;IACzC,MAAMC,MAAkC,GAAGD,MAAM,CAACzB,GAAG,CAAC,CAAC,CAACN,SAAS,EAAEiC,IAAI,CAAC,KAAK;MAC3E,OAAO,CAACjC,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,EAAE,CAACH,SAAS,EAAEiC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,OAAO,IAAIrC,YAAY,CAAC,IAAIqB,GAAG,CAACe,MAAM,CAAC,CAAC;EAC1C;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOE,EAAE,CAAI9B,UAAuB,EAAES,SAAsC,EAAmB;IAC7F,MAAMC,MAAkC,GAAGV,UAAU,CAACE,GAAG,CAAEN,SAAS,IAAK;MACvE,OAAO,CAACA,SAAS,CAACE,EAAE,CAACC,QAAQ,EAAE,EAAE,CAACH,SAAS,EAAEa,SAAS,CAACb,SAAS,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,OAAO,IAAIJ,YAAY,CAAC,IAAIqB,GAAG,CAACH,MAAM,CAAC,CAAC;EAC1C;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_componentMap","data","require"],"sources":["index.ts"],"sourcesContent":["export { ComponentMap } from './component-map';\n"],"mappings":";;;;;;;;;;;AAAA,SAAAA,cAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,aAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { ComponentMap } from './component-map';\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_toolboxString","data","require","_componentId","ComponentMeta","constructor","id","displayName","tokens","name","split","map","token","capitalize","join","toObject","from","object","ComponentID","fromObject","exports"],"sources":["component-meta.ts"],"sourcesContent":["import { capitalize } from '@teambit/toolbox.string.capitalize';\nimport { ComponentID } from '@teambit/component-id';\n\nexport class ComponentMeta {\n constructor(\n /**\n * id the component.\n */\n readonly id: ComponentID\n ) {}\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n toObject() {\n return {\n id: this.id.toObject(),\n };\n }\n\n static from(object: { [key: string]: any }) {\n return new ComponentMeta(ComponentID.fromObject(object.id));\n }\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,eAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,cAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,aAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,YAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,aAAa,CAAC;EACzBC,WAAWA;EACT;AACJ;AACA;EACaC,EAAe,EACxB;IAAA,KADSA,EAAe,GAAfA,EAAe;EACvB;;EAEH;AACF;AACA;EACE,IAAIC,WAAWA,CAAA,EAAG;IAChB,MAAMC,MAAM,GAAG,IAAI,CAACF,EAAE,CAACG,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAK,IAAAC,2BAAU,EAACD,KAAK,CAAC,CAAC;IACxE,OAAOJ,MAAM,CAACM,IAAI,CAAC,GAAG,CAAC;EACzB;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO;MACLT,EAAE,EAAE,IAAI,CAACA,EAAE,CAACS,QAAQ,CAAC;IACvB,CAAC;EACH;EAEA,OAAOC,IAAIA,CAACC,MAA8B,EAAE;IAC1C,OAAO,IAAIb,aAAa,CAACc,0BAAW,CAACC,UAAU,CAACF,MAAM,CAACX,EAAE,CAAC,CAAC;EAC7D;AACF;AAACc,OAAA,CAAAhB,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"names":["ComponentMeta","constructor","id","displayName","tokens","name","split","map","token","capitalize","join","toObject","from","object","ComponentID","fromObject"],"sources":["component-meta.ts"],"sourcesContent":["import { capitalize } from '@teambit/toolbox.string.capitalize';\nimport { ComponentID } from '@teambit/component-id';\n\nexport class ComponentMeta {\n constructor(\n /**\n * id the component.\n */\n readonly id: ComponentID\n ) {}\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n toObject() {\n return {\n id: this.id.toObject(),\n };\n }\n\n static from(object: { [key: string]: any }) {\n return new ComponentMeta(ComponentID.fromObject(object.id));\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,aAAa,CAAC;EACzBC,WAAW;EACT;AACJ;AACA;EACaC,EAAe,EACxB;IAAA,KADSA,EAAe,GAAfA,EAAe;EACvB;;EAEH;AACF;AACA;EACE,IAAIC,WAAW,GAAG;IAChB,MAAMC,MAAM,GAAG,IAAI,CAACF,EAAE,CAACG,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAK,IAAAC,2BAAU,EAACD,KAAK,CAAC,CAAC;IACxE,OAAOJ,MAAM,CAACM,IAAI,CAAC,GAAG,CAAC;EACzB;EAEAC,QAAQ,GAAG;IACT,OAAO;MACLT,EAAE,EAAE,IAAI,CAACA,EAAE,CAACS,QAAQ;IACtB,CAAC;EACH;EAEA,OAAOC,IAAI,CAACC,MAA8B,EAAE;IAC1C,OAAO,IAAIb,aAAa,CAACc,0BAAW,CAACC,UAAU,CAACF,MAAM,CAACX,EAAE,CAAC,CAAC;EAC7D;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_harmony","data","require","ComponentAspect","Aspect","create","id","dependencies","defaultConfig","exports","_default","default"],"sources":["component.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ComponentAspect = Aspect.create({\n id: 'teambit.component/component',\n dependencies: [],\n defaultConfig: {},\n});\n\nexport default ComponentAspect;\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,eAAe,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE,6BAA6B;EACjCC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAACC,OAAA,CAAAN,eAAA,GAAAA,eAAA;AAAA,IAAAO,QAAA,GAEYP,eAAe;AAAAM,OAAA,CAAAE,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"names":["ComponentAspect","Aspect","create","id","dependencies","defaultConfig"],"sources":["component.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const ComponentAspect = Aspect.create({\n id: 'teambit.component/component',\n dependencies: [],\n defaultConfig: {},\n});\n\nexport default ComponentAspect;\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,eAAe,GAAGC,iBAAM,CAACC,MAAM,CAAC;EAC3CC,EAAE,EAAE,6BAA6B;EACjCC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC;AAAC;AAAA,eAEYL,eAAe;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","Logo","default","createElement","style","height","display","justifyContent","width","src","exports"],"sources":["component.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/bit-icons/components.svg\" />\n </div>\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;AAEO,MAAMG,IAAI,GAAGA,CAAA,kBAClBJ,MAAA,GAAAK,OAAA,CAAAC,aAAA;EAAKC,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxEV,MAAA,GAAAK,OAAA,CAAAC,aAAA;EAAKC,KAAK,EAAE;IAAEI,KAAK,EAAE;EAAG,CAAE;EAACC,GAAG,EAAC;AAAiD,CAAE,CAC/E,CACN;AAACC,OAAA,CAAAT,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["component.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/bit-icons/components.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAM;IAAEC,OAAO,EAAE,MAAM;IAAEC,cAAc,EAAE;EAAS;AAAE,gBACxE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAG,CAAE;EAAC,GAAG,EAAC;AAAiD,EAAG,CAEtF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_utils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","_component$headTag","latest","tags","toArray","tag","aspects","include","serialize","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","error","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport gql from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain) {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: String\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n # Log entry of the component.\n log: LogEntry!\n\n \"\"\"\n component logs\n \"\"\"\n logs(\n \"\"\"\n type of logs to show (tag or snap)\n \"\"\"\n type: String\n offset: Int\n limit: Int\n \"\"\"\n head to start traversing logs from\n \"\"\"\n head: String\n sort: String\n \"\"\"\n start traversing logs from the fetched component's head\n \"\"\"\n takeHeadFromComponent: Boolean\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component) => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n logs: async (\n component: Component,\n filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n takeHeadFromComponent: boolean;\n }\n ) => {\n let head = filter?.head;\n if (!head && filter?.takeHeadFromComponent) {\n head = component.id.version;\n }\n const finalFilter = { ...filter, ...{ head } };\n return (await component.getLogs(finalFilter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }) => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory) => {\n return host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,iBAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,gBAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,OAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,MAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkE,SAAAM,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,GAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAK3D,SAASY,eAAeA,CAACC,kBAAiC,EAAE;EACjE,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAKA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrDC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,I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"}
1
+ {"version":3,"names":["componentSchema","componentExtension","typeDefs","gql","resolvers","JSONObject","GraphQLJSONObject","Component","id","component","toObject","displayName","fs","state","filesystem","files","map","file","relative","log","snap","loadSnap","version","date","timestamp","getTime","email","author","username","name","hash","getFile","path","maybeFile","find","pathNormalizeToLinux","undefined","contents","toString","mainFile","_consumer","headTag","latest","tags","toArray","tag","aspects","include","filter","serialize","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","error","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","Query","getHost","componentExt"],"sources":["component.graphql.ts"],"sourcesContent":["import stripAnsi from 'strip-ansi';\nimport gql from 'graphql-tag';\nimport { GraphQLJSONObject } from 'graphql-type-json';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain) {\n return {\n typeDefs: gql`\n scalar JSON\n scalar JSONObject\n\n type ComponentID {\n name: String!\n version: String\n scope: String\n }\n\n type Tag {\n # semver assigned to the tag.\n version: String!\n\n # tag hash.\n hash: String!\n }\n\n type Snap {\n # hash of the snapshot.\n hash: String!\n\n # time of the snapshot.\n timestamp: String!\n\n # parents of the snap\n parents: [String]!\n\n # snapper\n author: Author!\n\n # snapshot message\n message: String\n }\n\n type LogEntry {\n message: String!\n displayName: String\n username: String\n parents: [String]!\n email: String\n date: String\n hash: String!\n tag: String\n id: String!\n profileImage: String\n }\n\n type Author {\n # display name of the snapper.\n displayName: String!\n\n # author of the snapper.\n email: String!\n }\n\n type Component {\n # id of the component.\n id: ComponentID!\n\n # head snap of the component.\n head: Snap\n\n # head tag of the component.\n headTag: Tag\n\n # list of all relative component paths.\n fs: [String]\n\n # relative path to the main file of the component\n mainFile: String\n\n # return specific file contents by relative file path.\n getFile(path: String): String\n\n # latest version of the component.\n latest: String\n\n # display name of the component\n displayName: String!\n\n # component buildStatus\n buildStatus: String\n\n # list of component releases.\n tags: [Tag]!\n\n # Log entry of the component.\n log: LogEntry!\n\n \"\"\"\n component logs\n \"\"\"\n logs(\n \"\"\"\n type of logs to show (tag or snap)\n \"\"\"\n type: String\n offset: Int\n limit: Int\n \"\"\"\n head to start traversing logs from\n \"\"\"\n head: String\n sort: String\n \"\"\"\n start traversing logs from the fetched component's head\n \"\"\"\n takeHeadFromComponent: Boolean\n ): [LogEntry]!\n\n aspects(include: [String]): [Aspect]\n }\n\n type Aspect {\n id: String!\n icon: String\n config: JSONObject\n data: JSONObject\n }\n\n type InvalidComponent {\n id: ComponentID!\n errorName: String!\n errorMessage: String!\n }\n\n type ComponentHost {\n id: ID!\n name: String!\n\n # load a component.\n get(id: String!, withState: Boolean): Component\n\n # list components\n list(offset: Int, limit: Int): [Component]!\n\n # list invalid components and their errors\n listInvalid: [InvalidComponent]!\n\n # get component logs(snaps) by component id\n snaps(id: String!): [LogEntry]! @deprecated(reason: \"Use the logs field on Component\")\n }\n\n type Query {\n getHost(id: String): ComponentHost\n }\n `,\n resolvers: {\n JSONObject: GraphQLJSONObject,\n Component: {\n id: (component: Component) => component.id.toObject(),\n displayName: (component: Component) => component.displayName,\n fs: (component: Component) => {\n return component.state.filesystem.files.map((file) => file.relative);\n },\n log: async (component: Component) => {\n const snap = await component.loadSnap(component.id.version);\n return {\n ...snap,\n date: snap.timestamp.getTime(),\n email: snap.author.email,\n username: snap.author.name,\n displayName: snap.author.displayName,\n id: snap.hash,\n };\n },\n getFile: (component: Component, { path }: { path: string }) => {\n const maybeFile = component.state.filesystem.files.find(\n (file) => pathNormalizeToLinux(file.relative) === path\n );\n if (!maybeFile) return undefined;\n return maybeFile.contents.toString('utf-8');\n },\n mainFile: (component: Component) => {\n return component.state._consumer.mainFile;\n },\n headTag: (component: Component) => component.headTag?.toObject(),\n latest: (component: Component) => component.latest,\n tags: (component) => {\n // graphql doesn't support map types\n return component.tags.toArray().map((tag) => tag.toObject());\n },\n aspects: (component: Component, { include }: { include?: string[] }) => {\n return component.state.aspects.filter(include).serialize();\n },\n logs: async (\n component: Component,\n filter?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n takeHeadFromComponent: boolean;\n }\n ) => {\n let head = filter?.head;\n if (!head && filter?.takeHeadFromComponent) {\n head = component.id.version;\n }\n const finalFilter = { ...filter, ...{ head } };\n return (await component.getLogs(finalFilter)).map((log) => ({ ...log, id: log.hash }));\n },\n },\n ComponentHost: {\n get: async (host: ComponentFactory, { id }: { id: string }) => {\n try {\n const componentId = await host.resolveComponentId(id);\n const component = await host.get(componentId);\n return component;\n } catch (error: any) {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }) => {\n const componentId = await host.resolveComponentId(id);\n // return (await host.getLogs(componentId)).map(log => ({...log, id: log.hash}))\n return host.getLogs(componentId);\n },\n list: async (host: ComponentFactory, filter?: { offset: number; limit: number }) => {\n return host.list(filter);\n },\n listInvalid: async (host: ComponentFactory) => {\n const invalidComps = await host.listInvalid();\n return invalidComps.map(({ id, err }) => ({\n id,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory) => {\n return host.name;\n },\n name: async (host: ComponentFactory) => {\n return host.name;\n },\n },\n Query: {\n getHost: (componentExt: ComponentMain, { id }: { id: string }) => {\n return componentExtension.getHost(id);\n },\n },\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAkE;AAAA;AAK3D,SAASA,eAAe,CAACC,kBAAiC,EAAE;EACjE,OAAO;IACLC,QAAQ,EAAE,IAAAC,qBAAG,CAAC;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAKA,SAAS,CAACD,EAAE,CAACE,QAAQ,EAAE;QACrDC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAAC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"}
package/dist/component.js CHANGED
@@ -46,10 +46,7 @@ function _exceptions() {
46
46
  return data;
47
47
  }
48
48
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
49
- function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function (s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function (value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); } // import { NothingToSnap } from './exceptions';
50
- // eslint-disable-next-line import/no-cycle
51
- // import { Author } from './types';
52
-
49
+ function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function (s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function (value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
53
50
  /**
54
51
  * in-memory representation of a component.
55
52
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_toolboxString","data","require","_bitError","_lodash","_tagMap","_exceptions","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","ret","throw","thr","Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","_this$state$aspects$g","aspects","serialize","getLogs","filter","allLogs","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isOutdated","_this$head","latestTag","byVersion","isNew","loadState","snapId","getState","loadSnap","_this$head2","snapToGet","BitError","getSnap","snapsIterable","options","_this$head3","snapToStart","nextSnaps","currSnapId","shift","parents","length","firstParentOnly","push","concat","stopFn","getClosestTag","snapToStartFrom","tagsHashMap","getHashMap","has","snaps","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","hashOfLastSnap","checkout","write","path","fs","equals","component","toString","exports"],"sources":["component.ts"],"sourcesContent":["import { AnyFS } from '@teambit/any-fs';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport { SemVer } from 'semver';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { BuildStatus } from '@teambit/legacy/dist/constants';\n\nimport { slice } from 'lodash';\nimport { ComponentFactory } from './component-factory';\nimport ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport ComponentConfig from './config';\n// eslint-disable-next-line import/no-cycle\nimport { Snap } from './snap';\nimport { State } from './state';\nimport { TagMap } from './tag-map';\nimport { Tag } from './tag';\nimport { CouldNotFindLatest } from './exceptions';\nimport { IComponent, RawComponentMetadata } from './component-interface';\n// import { Author } from './types';\n\ntype SnapsIterableOpts = {\n firstParentOnly?: boolean;\n stopFn?: (snap: Snap) => Promise<boolean>;\n};\n\nexport type InvalidComponent = { id: ComponentID; err: Error };\n\n/**\n * in-memory representation of a component.\n */\nexport class Component implements IComponent {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n private _state: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * the component factory\n */\n private factory: ComponentFactory\n ) {}\n\n get mainFile() {\n return this.state.mainFile;\n }\n\n get state(): State {\n return this._state;\n }\n\n set state(state: State) {\n this._state = state;\n }\n\n /**\n * component configuration which is later generated to a component `package.json` and `bit.json`.\n */\n get config(): ComponentConfig {\n return this.state.config;\n }\n\n /**\n * in-memory representation of the component current filesystem.\n */\n get filesystem(): ComponentFS {\n return this.state.filesystem;\n }\n\n /**\n * build status of the component\n */\n get buildStatus(): BuildStatus {\n return this._state._consumer.buildStatus;\n }\n\n get headTag() {\n if (!this.head) return undefined;\n return this.tags.byHash(this.head.hash);\n }\n\n get latest(): string | undefined {\n if (!this.head) return undefined;\n try {\n return this.tags.getLatest();\n } catch (err: any) {\n if (err instanceof CouldNotFindLatest) {\n return this.head.hash;\n }\n throw err;\n }\n }\n\n /**\n * get aspect data from current state.\n */\n get(id: string): RawComponentMetadata | undefined {\n return this.state.aspects.get(id)?.serialize();\n }\n\n async getLogs(filter?: { type?: string; offset?: number; limit?: number; head?: string; sort?: string }) {\n const allLogs = await this.factory.getLogs(this.id, false, filter?.head);\n\n if (!filter) return allLogs;\n\n const { type, limit, offset, sort } = filter;\n\n const typeFilter = (snap) => {\n if (type === 'tag') return snap.tag;\n if (type === 'snap') return !snap.tag;\n return true;\n };\n\n let filteredLogs = (type && allLogs.filter(typeFilter)) || allLogs;\n if (sort !== 'asc') filteredLogs = filteredLogs.reverse();\n\n if (limit) {\n filteredLogs = slice(filteredLogs, offset, limit + (offset || 0));\n }\n\n return filteredLogs;\n }\n\n stringify(): string {\n return JSON.stringify({\n id: this.id,\n head: this.head,\n });\n }\n\n /**\n * record component changes in the `Scope`.\n */\n // snap(author: Author, message = '') {\n // if (!this.isModified()) throw new NothingToSnap();\n // const snap = new Snap(this, author, message);\n\n // return new Component(this.id, snap, snap.state);\n // }\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n /**\n * tag a component `Snap` with a semantic version. we follow SemVer specs as defined [here](https://semver.org/)).\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tag(version: SemVer) {\n // const snap = this.snap();\n // const tag = new Tag(version, snap);\n // this.tags.set(tag);\n }\n\n /**\n * determines whether this component is modified in the workspace.\n */\n isModified(): Promise<boolean> {\n return this.factory.isModified(this);\n }\n\n /**\n * is component isOutdated\n */\n isOutdated(): boolean {\n if (!this.latest) return false;\n const latestTag = this.tags.byVersion(this.latest);\n if (!latestTag) return false;\n if (this.head?.hash !== latestTag?.hash) return true;\n return false;\n }\n\n /**\n * determines whether this component is new.\n */\n isNew(): Promise<boolean> {\n return Promise.resolve(this.head === null);\n }\n\n // TODO: @david after snap we need to make sure to refactor here.\n loadState(snapId: string): Promise<State> {\n return this.factory.getState(this.id, snapId);\n }\n\n loadSnap(snapId?: string): Promise<Snap> {\n const snapToGet = snapId || this.head?.hash;\n if (!snapToGet) {\n throw new BitError('could not load snap for new components');\n }\n return this.factory.getSnap(this.id, snapToGet);\n }\n\n /**\n * Get iterable which iterate over snap parents lazily\n * @param snapId\n * @param options\n */\n snapsIterable(snapId?: string, options: SnapsIterableOpts = {}): AsyncIterable<Snap> {\n const snapToStart = snapId || this.head?.hash;\n let nextSnaps = [snapToStart];\n let done;\n if (!snapToStart) {\n done = true;\n }\n\n const iterator: AsyncIterator<Snap> = {\n next: async () => {\n if (done) {\n return { value: undefined, done };\n }\n const currSnapId = nextSnaps.shift();\n const snap = await this.loadSnap(currSnapId);\n if (snap.parents && snap.parents.length) {\n if (options.firstParentOnly) {\n nextSnaps.push(snap.parents[0]);\n } else {\n nextSnaps = nextSnaps.concat(snap.parents);\n }\n }\n if (!nextSnaps.length) {\n done = true;\n } else if (options.stopFn) {\n done = await options.stopFn(snap);\n }\n return { value: snap, done: undefined };\n },\n };\n return {\n [Symbol.asyncIterator]: () => iterator,\n };\n }\n\n /**\n * traverse recursively from the provided snap (or head) upwards until it finds a tag\n * @param snapToStartFrom\n */\n async getClosestTag(snapToStartFrom?: string): Promise<Tag | undefined> {\n const tagsHashMap = this.tags.getHashMap();\n const stopFn = async (snap: Snap) => {\n if (tagsHashMap.has(snap.hash)) {\n return true;\n }\n return false;\n };\n const iterable = this.snapsIterable(snapToStartFrom, { firstParentOnly: true, stopFn });\n const snaps: Snap[] = [];\n for await (const snap of iterable) {\n snaps.push(snap);\n }\n if (snaps.length) {\n const hashOfLastSnap = snaps[snaps.length - 1].hash;\n return tagsHashMap.get(hashOfLastSnap);\n }\n return undefined;\n }\n\n /**\n * checkout the component to a different version in its working tree.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkout(version: SemVer) {}\n\n /**\n * examine difference between two components.\n */\n // diff(other: Component): Difference {}\n\n /**\n * merge two different components\n */\n // merge(other: Component): Component {}\n\n /**\n * write a component to a given file system.\n * @param path root path to write the component\n * @param fs instance of any fs to use.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n write(path: string, fs?: AnyFS) {}\n\n /**\n *\n * Check if 2 components are equal\n * @param {Component} component\n * @returns {boolean}\n * @memberof Component\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n equals(component: Component): boolean {\n return component.id.toString() === this.id.toString();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","aspects","serialize","getLogs","filter","allLogs","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isOutdated","latestTag","byVersion","isNew","Promise","resolve","loadState","snapId","getState","loadSnap","snapToGet","BitError","getSnap","snapsIterable","options","snapToStart","nextSnaps","done","iterator","next","value","currSnapId","shift","parents","length","firstParentOnly","push","concat","stopFn","Symbol","asyncIterator","getClosestTag","snapToStartFrom","tagsHashMap","getHashMap","has","iterable","snaps","hashOfLastSnap","checkout","write","path","fs","equals","component","toString"],"sources":["component.ts"],"sourcesContent":["import { AnyFS } from '@teambit/any-fs';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport { SemVer } from 'semver';\nimport { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport { BuildStatus } from '@teambit/legacy/dist/constants';\n\nimport { slice } from 'lodash';\nimport { ComponentFactory } from './component-factory';\nimport ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport ComponentConfig from './config';\n// eslint-disable-next-line import/no-cycle\nimport { Snap } from './snap';\nimport { State } from './state';\nimport { TagMap } from './tag-map';\nimport { Tag } from './tag';\nimport { CouldNotFindLatest } from './exceptions';\nimport { IComponent, RawComponentMetadata } from './component-interface';\n// import { Author } from './types';\n\ntype SnapsIterableOpts = {\n firstParentOnly?: boolean;\n stopFn?: (snap: Snap) => Promise<boolean>;\n};\n\nexport type InvalidComponent = { id: ComponentID; err: Error };\n\n/**\n * in-memory representation of a component.\n */\nexport class Component implements IComponent {\n constructor(\n /**\n * component ID represented by the `ComponentId` type.\n */\n readonly id: ComponentID,\n\n /**\n * head version of the component. can be `null` for new components.\n */\n readonly head: Snap | null = null,\n\n /**\n * state of the component.\n */\n private _state: State,\n\n /**\n * tags of the component.\n */\n readonly tags: TagMap = new TagMap(),\n\n /**\n * the component factory\n */\n private factory: ComponentFactory\n ) {}\n\n get mainFile() {\n return this.state.mainFile;\n }\n\n get state(): State {\n return this._state;\n }\n\n set state(state: State) {\n this._state = state;\n }\n\n /**\n * component configuration which is later generated to a component `package.json` and `bit.json`.\n */\n get config(): ComponentConfig {\n return this.state.config;\n }\n\n /**\n * in-memory representation of the component current filesystem.\n */\n get filesystem(): ComponentFS {\n return this.state.filesystem;\n }\n\n /**\n * build status of the component\n */\n get buildStatus(): BuildStatus {\n return this._state._consumer.buildStatus;\n }\n\n get headTag() {\n if (!this.head) return undefined;\n return this.tags.byHash(this.head.hash);\n }\n\n get latest(): string | undefined {\n if (!this.head) return undefined;\n try {\n return this.tags.getLatest();\n } catch (err: any) {\n if (err instanceof CouldNotFindLatest) {\n return this.head.hash;\n }\n throw err;\n }\n }\n\n /**\n * get aspect data from current state.\n */\n get(id: string): RawComponentMetadata | undefined {\n return this.state.aspects.get(id)?.serialize();\n }\n\n async getLogs(filter?: { type?: string; offset?: number; limit?: number; head?: string; sort?: string }) {\n const allLogs = await this.factory.getLogs(this.id, false, filter?.head);\n\n if (!filter) return allLogs;\n\n const { type, limit, offset, sort } = filter;\n\n const typeFilter = (snap) => {\n if (type === 'tag') return snap.tag;\n if (type === 'snap') return !snap.tag;\n return true;\n };\n\n let filteredLogs = (type && allLogs.filter(typeFilter)) || allLogs;\n if (sort !== 'asc') filteredLogs = filteredLogs.reverse();\n\n if (limit) {\n filteredLogs = slice(filteredLogs, offset, limit + (offset || 0));\n }\n\n return filteredLogs;\n }\n\n stringify(): string {\n return JSON.stringify({\n id: this.id,\n head: this.head,\n });\n }\n\n /**\n * record component changes in the `Scope`.\n */\n // snap(author: Author, message = '') {\n // if (!this.isModified()) throw new NothingToSnap();\n // const snap = new Snap(this, author, message);\n\n // return new Component(this.id, snap, snap.state);\n // }\n\n /**\n * display name of the component.\n */\n get displayName() {\n const tokens = this.id.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n /**\n * tag a component `Snap` with a semantic version. we follow SemVer specs as defined [here](https://semver.org/)).\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tag(version: SemVer) {\n // const snap = this.snap();\n // const tag = new Tag(version, snap);\n // this.tags.set(tag);\n }\n\n /**\n * determines whether this component is modified in the workspace.\n */\n isModified(): Promise<boolean> {\n return this.factory.isModified(this);\n }\n\n /**\n * is component isOutdated\n */\n isOutdated(): boolean {\n if (!this.latest) return false;\n const latestTag = this.tags.byVersion(this.latest);\n if (!latestTag) return false;\n if (this.head?.hash !== latestTag?.hash) return true;\n return false;\n }\n\n /**\n * determines whether this component is new.\n */\n isNew(): Promise<boolean> {\n return Promise.resolve(this.head === null);\n }\n\n // TODO: @david after snap we need to make sure to refactor here.\n loadState(snapId: string): Promise<State> {\n return this.factory.getState(this.id, snapId);\n }\n\n loadSnap(snapId?: string): Promise<Snap> {\n const snapToGet = snapId || this.head?.hash;\n if (!snapToGet) {\n throw new BitError('could not load snap for new components');\n }\n return this.factory.getSnap(this.id, snapToGet);\n }\n\n /**\n * Get iterable which iterate over snap parents lazily\n * @param snapId\n * @param options\n */\n snapsIterable(snapId?: string, options: SnapsIterableOpts = {}): AsyncIterable<Snap> {\n const snapToStart = snapId || this.head?.hash;\n let nextSnaps = [snapToStart];\n let done;\n if (!snapToStart) {\n done = true;\n }\n\n const iterator: AsyncIterator<Snap> = {\n next: async () => {\n if (done) {\n return { value: undefined, done };\n }\n const currSnapId = nextSnaps.shift();\n const snap = await this.loadSnap(currSnapId);\n if (snap.parents && snap.parents.length) {\n if (options.firstParentOnly) {\n nextSnaps.push(snap.parents[0]);\n } else {\n nextSnaps = nextSnaps.concat(snap.parents);\n }\n }\n if (!nextSnaps.length) {\n done = true;\n } else if (options.stopFn) {\n done = await options.stopFn(snap);\n }\n return { value: snap, done: undefined };\n },\n };\n return {\n [Symbol.asyncIterator]: () => iterator,\n };\n }\n\n /**\n * traverse recursively from the provided snap (or head) upwards until it finds a tag\n * @param snapToStartFrom\n */\n async getClosestTag(snapToStartFrom?: string): Promise<Tag | undefined> {\n const tagsHashMap = this.tags.getHashMap();\n const stopFn = async (snap: Snap) => {\n if (tagsHashMap.has(snap.hash)) {\n return true;\n }\n return false;\n };\n const iterable = this.snapsIterable(snapToStartFrom, { firstParentOnly: true, stopFn });\n const snaps: Snap[] = [];\n for await (const snap of iterable) {\n snaps.push(snap);\n }\n if (snaps.length) {\n const hashOfLastSnap = snaps[snaps.length - 1].hash;\n return tagsHashMap.get(hashOfLastSnap);\n }\n return undefined;\n }\n\n /**\n * checkout the component to a different version in its working tree.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n checkout(version: SemVer) {}\n\n /**\n * examine difference between two components.\n */\n // diff(other: Component): Difference {}\n\n /**\n * merge two different components\n */\n // merge(other: Component): Component {}\n\n /**\n * write a component to a given file system.\n * @param path root path to write the component\n * @param fs instance of any fs to use.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n write(path: string, fs?: AnyFS) {}\n\n /**\n *\n * Check if 2 components are equal\n * @param {Component} component\n * @returns {boolean}\n * @memberof Component\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n equals(component: Component): boolean {\n return component.id.toString() === this.id.toString();\n }\n}\n"],"mappings":";;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAGA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAQA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAAkD;AAAA;AAWlD;AACA;AACA;AACO,MAAMA,SAAS,CAAuB;EAC3CC,WAAW;EACT;AACJ;AACA;EACaC,EAAe;EAExB;AACJ;AACA;EACaC,IAAiB,GAAG,IAAI;EAEjC;AACJ;AACA;EACYC,MAAa;EAErB;AACJ;AACA;EACaC,IAAY,GAAG,KAAIC,gBAAM,GAAE;EAEpC;AACJ;AACA;EACYC,OAAyB,EACjC;IAAA,KArBSL,EAAe,GAAfA,EAAe;IAAA,KAKfC,IAAiB,GAAjBA,IAAiB;IAAA,KAKlBC,MAAa,GAAbA,MAAa;IAAA,KAKZC,IAAY,GAAZA,IAAY;IAAA,KAKbE,OAAyB,GAAzBA,OAAyB;EAChC;EAEH,IAAIC,QAAQ,GAAG;IACb,OAAO,IAAI,CAACC,KAAK,CAACD,QAAQ;EAC5B;EAEA,IAAIC,KAAK,GAAU;IACjB,OAAO,IAAI,CAACL,MAAM;EACpB;EAEA,IAAIK,KAAK,CAACA,KAAY,EAAE;IACtB,IAAI,CAACL,MAAM,GAAGK,KAAK;EACrB;;EAEA;AACF;AACA;EACE,IAAIC,MAAM,GAAoB;IAC5B,OAAO,IAAI,CAACD,KAAK,CAACC,MAAM;EAC1B;;EAEA;AACF;AACA;EACE,IAAIC,UAAU,GAAgB;IAC5B,OAAO,IAAI,CAACF,KAAK,CAACE,UAAU;EAC9B;;EAEA;AACF;AACA;EACE,IAAIC,WAAW,GAAgB;IAC7B,OAAO,IAAI,CAACR,MAAM,CAACS,SAAS,CAACD,WAAW;EAC1C;EAEA,IAAIE,OAAO,GAAG;IACZ,IAAI,CAAC,IAAI,CAACX,IAAI,EAAE,OAAOY,SAAS;IAChC,OAAO,IAAI,CAACV,IAAI,CAACW,MAAM,CAAC,IAAI,CAACb,IAAI,CAACc,IAAI,CAAC;EACzC;EAEA,IAAIC,MAAM,GAAuB;IAC/B,IAAI,CAAC,IAAI,CAACf,IAAI,EAAE,OAAOY,SAAS;IAChC,IAAI;MACF,OAAO,IAAI,CAACV,IAAI,CAACc,SAAS,EAAE;IAC9B,CAAC,CAAC,OAAOC,GAAQ,EAAE;MACjB,IAAIA,GAAG,YAAYC,gCAAkB,EAAE;QACrC,OAAO,IAAI,CAAClB,IAAI,CAACc,IAAI;MACvB;MACA,MAAMG,GAAG;IACX;EACF;;EAEA;AACF;AACA;EACEE,GAAG,CAACpB,EAAU,EAAoC;IAAA;IAChD,gCAAO,IAAI,CAACO,KAAK,CAACc,OAAO,CAACD,GAAG,CAACpB,EAAE,CAAC,0DAA1B,sBAA4BsB,SAAS,EAAE;EAChD;EAEA,MAAMC,OAAO,CAACC,MAAyF,EAAE;IACvG,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACpB,OAAO,CAACkB,OAAO,CAAC,IAAI,CAACvB,EAAE,EAAE,KAAK,EAAEwB,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEvB,IAAI,CAAC;IAExE,IAAI,CAACuB,MAAM,EAAE,OAAOC,OAAO;IAE3B,MAAM;MAAEC,IAAI;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAK,CAAC,GAAGL,MAAM;IAE5C,MAAMM,UAAU,GAAIC,IAAI,IAAK;MAC3B,IAAIL,IAAI,KAAK,KAAK,EAAE,OAAOK,IAAI,CAACC,GAAG;MACnC,IAAIN,IAAI,KAAK,MAAM,EAAE,OAAO,CAACK,IAAI,CAACC,GAAG;MACrC,OAAO,IAAI;IACb,CAAC;IAED,IAAIC,YAAY,GAAIP,IAAI,IAAID,OAAO,CAACD,MAAM,CAACM,UAAU,CAAC,IAAKL,OAAO;IAClE,IAAII,IAAI,KAAK,KAAK,EAAEI,YAAY,GAAGA,YAAY,CAACC,OAAO,EAAE;IAEzD,IAAIP,KAAK,EAAE;MACTM,YAAY,GAAG,IAAAE,eAAK,EAACF,YAAY,EAAEL,MAAM,EAAED,KAAK,IAAIC,MAAM,IAAI,CAAC,CAAC,CAAC;IACnE;IAEA,OAAOK,YAAY;EACrB;EAEAG,SAAS,GAAW;IAClB,OAAOC,IAAI,CAACD,SAAS,CAAC;MACpBpC,EAAE,EAAE,IAAI,CAACA,EAAE;MACXC,IAAI,EAAE,IAAI,CAACA;IACb,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACE;EACA;EACA;;EAEA;EACA;;EAEA;AACF;AACA;EACE,IAAIqC,WAAW,GAAG;IAChB,MAAMC,MAAM,GAAG,IAAI,CAACvC,EAAE,CAACwC,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAEC,KAAK,IAAK,IAAAC,2BAAU,EAACD,KAAK,CAAC,CAAC;IACxE,OAAOJ,MAAM,CAACM,IAAI,CAAC,GAAG,CAAC;EACzB;;EAEA;AACF;AACA;EACE;EACAb,GAAG,CAACc,OAAe,EAAE;IACnB;IACA;IACA;EAAA;;EAGF;AACF;AACA;EACEC,UAAU,GAAqB;IAC7B,OAAO,IAAI,CAAC1C,OAAO,CAAC0C,UAAU,CAAC,IAAI,CAAC;EACtC;;EAEA;AACF;AACA;EACEC,UAAU,GAAY;IAAA;IACpB,IAAI,CAAC,IAAI,CAAChC,MAAM,EAAE,OAAO,KAAK;IAC9B,MAAMiC,SAAS,GAAG,IAAI,CAAC9C,IAAI,CAAC+C,SAAS,CAAC,IAAI,CAAClC,MAAM,CAAC;IAClD,IAAI,CAACiC,SAAS,EAAE,OAAO,KAAK;IAC5B,IAAI,mBAAI,CAAChD,IAAI,+CAAT,WAAWc,IAAI,OAAKkC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAElC,IAAI,GAAE,OAAO,IAAI;IACpD,OAAO,KAAK;EACd;;EAEA;AACF;AACA;EACEoC,KAAK,GAAqB;IACxB,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAACpD,IAAI,KAAK,IAAI,CAAC;EAC5C;;EAEA;EACAqD,SAAS,CAACC,MAAc,EAAkB;IACxC,OAAO,IAAI,CAAClD,OAAO,CAACmD,QAAQ,CAAC,IAAI,CAACxD,EAAE,EAAEuD,MAAM,CAAC;EAC/C;EAEAE,QAAQ,CAACF,MAAe,EAAiB;IAAA;IACvC,MAAMG,SAAS,GAAGH,MAAM,oBAAI,IAAI,CAACtD,IAAI,gDAAT,YAAWc,IAAI;IAC3C,IAAI,CAAC2C,SAAS,EAAE;MACd,MAAM,KAAIC,oBAAQ,EAAC,wCAAwC,CAAC;IAC9D;IACA,OAAO,IAAI,CAACtD,OAAO,CAACuD,OAAO,CAAC,IAAI,CAAC5D,EAAE,EAAE0D,SAAS,CAAC;EACjD;;EAEA;AACF;AACA;AACA;AACA;EACEG,aAAa,CAACN,MAAe,EAAEO,OAA0B,GAAG,CAAC,CAAC,EAAuB;IAAA;IACnF,MAAMC,WAAW,GAAGR,MAAM,oBAAI,IAAI,CAACtD,IAAI,gDAAT,YAAWc,IAAI;IAC7C,IAAIiD,SAAS,GAAG,CAACD,WAAW,CAAC;IAC7B,IAAIE,IAAI;IACR,IAAI,CAACF,WAAW,EAAE;MAChBE,IAAI,GAAG,IAAI;IACb;IAEA,MAAMC,QAA6B,GAAG;MACpCC,IAAI,EAAE,YAAY;QAChB,IAAIF,IAAI,EAAE;UACR,OAAO;YAAEG,KAAK,EAAEvD,SAAS;YAAEoD;UAAK,CAAC;QACnC;QACA,MAAMI,UAAU,GAAGL,SAAS,CAACM,KAAK,EAAE;QACpC,MAAMvC,IAAI,GAAG,MAAM,IAAI,CAAC0B,QAAQ,CAACY,UAAU,CAAC;QAC5C,IAAItC,IAAI,CAACwC,OAAO,IAAIxC,IAAI,CAACwC,OAAO,CAACC,MAAM,EAAE;UACvC,IAAIV,OAAO,CAACW,eAAe,EAAE;YAC3BT,SAAS,CAACU,IAAI,CAAC3C,IAAI,CAACwC,OAAO,CAAC,CAAC,CAAC,CAAC;UACjC,CAAC,MAAM;YACLP,SAAS,GAAGA,SAAS,CAACW,MAAM,CAAC5C,IAAI,CAACwC,OAAO,CAAC;UAC5C;QACF;QACA,IAAI,CAACP,SAAS,CAACQ,MAAM,EAAE;UACrBP,IAAI,GAAG,IAAI;QACb,CAAC,MAAM,IAAIH,OAAO,CAACc,MAAM,EAAE;UACzBX,IAAI,GAAG,MAAMH,OAAO,CAACc,MAAM,CAAC7C,IAAI,CAAC;QACnC;QACA,OAAO;UAAEqC,KAAK,EAAErC,IAAI;UAAEkC,IAAI,EAAEpD;QAAU,CAAC;MACzC;IACF,CAAC;IACD,OAAO;MACL,CAACgE,MAAM,CAACC,aAAa,GAAG,MAAMZ;IAChC,CAAC;EACH;;EAEA;AACF;AACA;AACA;EACE,MAAMa,aAAa,CAACC,eAAwB,EAA4B;IACtE,MAAMC,WAAW,GAAG,IAAI,CAAC9E,IAAI,CAAC+E,UAAU,EAAE;IAC1C,MAAMN,MAAM,GAAG,MAAO7C,IAAU,IAAK;MACnC,IAAIkD,WAAW,CAACE,GAAG,CAACpD,IAAI,CAAChB,IAAI,CAAC,EAAE;QAC9B,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd,CAAC;IACD,MAAMqE,QAAQ,GAAG,IAAI,CAACvB,aAAa,CAACmB,eAAe,EAAE;MAAEP,eAAe,EAAE,IAAI;MAAEG;IAAO,CAAC,CAAC;IACvF,MAAMS,KAAa,GAAG,EAAE;IAAC;IAAA;IAAA;IAAA;MACzB,oCAAyBD,QAAQ,iHAAE;QAAA,MAAlBrD,IAAI;QAAA;UACnBsD,KAAK,CAACX,IAAI,CAAC3C,IAAI,CAAC;QAAC;MACnB;IAAC;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;QAAA;MAAA;QAAA;UAAA;QAAA;MAAA;IAAA;IACD,IAAIsD,KAAK,CAACb,MAAM,EAAE;MAChB,MAAMc,cAAc,GAAGD,KAAK,CAACA,KAAK,CAACb,MAAM,GAAG,CAAC,CAAC,CAACzD,IAAI;MACnD,OAAOkE,WAAW,CAAC7D,GAAG,CAACkE,cAAc,CAAC;IACxC;IACA,OAAOzE,SAAS;EAClB;;EAEA;AACF;AACA;EACE;EACA0E,QAAQ,CAACzC,OAAe,EAAE,CAAC;;EAE3B;AACF;AACA;EACE;;EAEA;AACF;AACA;EACE;;EAEA;AACF;AACA;AACA;AACA;EACE;EACA0C,KAAK,CAACC,IAAY,EAAEC,EAAU,EAAE,CAAC;;EAEjC;AACF;AACA;AACA;AACA;AACA;AACA;EACE;EACAC,MAAM,CAACC,SAAoB,EAAW;IACpC,OAAOA,SAAS,CAAC5F,EAAE,CAAC6F,QAAQ,EAAE,KAAK,IAAI,CAAC7F,EAAE,CAAC6F,QAAQ,EAAE;EACvD;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_express","_graphql","_harmony","_lodash","_component","_component2","_component3","_aspectList","_exceptions","_show","ComponentMain","constructor","hostSlot","express","showFragmentSlot","_defineProperty2","default","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","scope","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","config","componentExtension","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","exports","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","ComponentAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\nimport { RegisteredComponentRoute } from '.';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList, scope?: string) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList, scope);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect];\n\n static async provider(\n [graphql, express, cli]: [GraphqlMain, ExpressMain, CLIMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["ComponentMain","constructor","hostSlot","express","showFragmentSlot","registerHost","host","register","createAspectListFromLegacy","legacyExtensionDataList","scope","AspectList","fromLegacyExtensions","createAspectListFromEntries","entries","registerRoute","routes","routeEntries","map","route","ComponentRoute","flattenRoutes","flatten","setHostPriority","id","get","HostNotFound","_priorHost","getHost","getPriorHost","getRoute","routeName","toString","hosts","values","priorityHost","find","priority","getShowFragments","fragments","orderBy","isHost","name","registerShowFragments","showFragments","provider","graphql","cli","config","componentExtension","ShowCmd","NameFragment","MainFileFragment","IDFragment","ScopeFragment","FilesFragment","ExtensionsFragment","componentSchema","Slot","withType","MainRuntime","GraphqlAspect","ExpressAspect","CLIAspect","ComponentAspect","addRuntime"],"sources":["component.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain, Route } from '@teambit/express';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { ComponentID } from '@teambit/component-id';\nimport { flatten, orderBy } from 'lodash';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentAspect } from './component.aspect';\nimport { componentSchema } from './component.graphql';\nimport { ComponentRoute } from './component.route';\nimport { AspectList } from './aspect-list';\nimport { HostNotFound } from './exceptions';\nimport { AspectEntry } from './aspect-entry';\nimport {\n ShowCmd,\n ShowFragment,\n NameFragment,\n MainFileFragment,\n IDFragment,\n ScopeFragment,\n FilesFragment,\n ExtensionsFragment,\n} from './show';\nimport { RegisteredComponentRoute } from '.';\n\nexport type ComponentHostSlot = SlotRegistry<ComponentFactory>;\n\nexport type ShowFragmentSlot = SlotRegistry<ShowFragment[]>;\n\nexport class ComponentMain {\n constructor(\n /**\n * slot for component hosts to register.\n */\n private hostSlot: ComponentHostSlot,\n\n /**\n * Express Extension\n */\n private express: ExpressMain,\n\n private showFragmentSlot: ShowFragmentSlot\n ) {}\n\n /**\n * register a new component host.\n */\n registerHost(host: ComponentFactory) {\n this.hostSlot.register(host);\n return this;\n }\n\n /**\n * important! avoid using this method.\n * seems like this method was written to work around a very specific case when the ComponentID of the aspects are\n * not available. in case of new components, to get the ComponentID, the workspace-aspect is needed to get the\n * default-scope. when this method is called from the scope, there is no way to get the real component-id.\n * instead, this method asks for the \"scope\", which when called by the scope-aspect is the current scope-name.\n * it may or may not be the real scope-name of the aspect.\n * to fix this possibly incorrect scope-name, the `workspace.resolveScopeAspectListIds()` checks whether the\n * scope-name is the same as scope.name, and if so, resolve it to the correct scope-name.\n */\n createAspectListFromLegacy(legacyExtensionDataList: ExtensionDataList, scope?: string) {\n return AspectList.fromLegacyExtensions(legacyExtensionDataList, scope);\n }\n\n createAspectListFromEntries(entries: AspectEntry[]) {\n return new AspectList(entries);\n }\n\n registerRoute(routes: RegisteredComponentRoute[]) {\n const routeEntries = routes.map((route: RegisteredComponentRoute) => {\n return new ComponentRoute(route, this);\n });\n\n const flattenRoutes = flatten(routeEntries) as any as Route[];\n\n this.express.register(flattenRoutes);\n return this;\n }\n\n /**\n * set the prior host.\n */\n setHostPriority(id: string) {\n const host = this.hostSlot.get(id);\n if (!host) {\n throw new HostNotFound(id);\n }\n\n this._priorHost = host;\n return this;\n }\n\n /**\n * get component host by extension ID.\n */\n getHost(id?: string): ComponentFactory {\n if (id) {\n const host = this.hostSlot.get(id);\n if (!host) throw new HostNotFound(id);\n return host;\n }\n\n return this.getPriorHost();\n }\n\n getRoute(id: ComponentID, routeName: string) {\n return `/api/${id.toString()}/~aspect/${routeName}`;\n }\n\n /**\n * get the prior host.\n */\n private getPriorHost() {\n if (this._priorHost) return this._priorHost;\n\n const hosts = this.hostSlot.values();\n const priorityHost = hosts.find((host) => host.priority);\n return priorityHost || hosts[0];\n }\n\n getShowFragments() {\n const fragments = orderBy(flatten(this.showFragmentSlot.values()), ['weight', ['asc']]);\n return fragments;\n }\n\n isHost(name: string) {\n return !!this.hostSlot.get(name);\n }\n\n /**\n * register a show fragment to display further information in the `bit show` command.\n */\n registerShowFragments(showFragments: ShowFragment[]) {\n this.showFragmentSlot.register(showFragments);\n return this;\n }\n\n private _priorHost: ComponentFactory | undefined;\n\n static slots = [Slot.withType<ComponentFactory>(), Slot.withType<Route[]>(), Slot.withType<ShowFragment[]>()];\n\n static runtime = MainRuntime;\n static dependencies = [GraphqlAspect, ExpressAspect, CLIAspect];\n\n static async provider(\n [graphql, express, cli]: [GraphqlMain, ExpressMain, CLIMain],\n config,\n [hostSlot, showFragmentSlot]: [ComponentHostSlot, ShowFragmentSlot]\n ) {\n const componentExtension = new ComponentMain(hostSlot, express, showFragmentSlot);\n cli.register(new ShowCmd(componentExtension));\n\n componentExtension.registerShowFragments([\n new NameFragment(),\n new MainFileFragment(),\n new IDFragment(),\n new ScopeFragment(),\n new FilesFragment(),\n new ExtensionsFragment(),\n ]);\n graphql.register(componentSchema(componentExtension));\n\n return componentExtension;\n }\n}\n\nComponentAspect.addRuntime(ComponentMain);\n"],"mappings":"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"}
@@ -20,7 +20,6 @@ class ComponentRoute {
20
20
  (0, _defineProperty2().default)(this, "dynamicRouteRegex", '/?[^/@]+/[^~]*');
21
21
  (0, _defineProperty2().default)(this, "route", `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`);
22
22
  (0, _defineProperty2().default)(this, "method", this.registerRoute.method);
23
- // @ts-ignore
24
23
  (0, _defineProperty2().default)(this, "middlewares", this.componentMiddlewares.concat(this.registerRoute.middlewares));
25
24
  }
26
25
  get componentMiddlewares() {
@@ -1 +1 @@
1
- {"version":3,"names":["ComponentRoute","constructor","registerRoute","componentExtension","_defineProperty2","default","dynamicRouteRegex","route","method","componentMiddlewares","concat","middlewares","req","res","next","_this$registerRoute$r","resolveComponent","componentId","params","host","getHost","compId","resolveComponentId","component","get","exports"],"sources":["component.route.ts"],"sourcesContent":["import { NextFunction, Request, Response, Route } from '@teambit/express';\n\nimport { ComponentMain } from './component.main.runtime';\n\nexport type RegisteredComponentRoute = Route & {\n resolveComponent?: boolean;\n};\n\nexport type ComponentUrlParams = {\n componentId: string;\n};\n\nexport class ComponentRoute implements Route {\n constructor(private registerRoute: RegisteredComponentRoute, private componentExtension: ComponentMain) {}\n dynamicRouteRegex = '/?[^/@]+/[^~]*';\n readonly route = `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`;\n\n get componentMiddlewares() {\n return [\n async (req: Request<ComponentUrlParams>, res: Response, next: NextFunction) => {\n const resolveComponent = this.registerRoute.resolveComponent ?? true;\n if (resolveComponent) {\n const { componentId } = req.params;\n const host = this.componentExtension.getHost();\n const compId = await host.resolveComponentId(componentId);\n const component = await host.get(compId);\n // @ts-ignore\n req.component = component;\n }\n next();\n },\n ];\n }\n\n method = this.registerRoute.method;\n // @ts-ignore\n middlewares = this.componentMiddlewares.concat(this.registerRoute.middlewares);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAYO,MAAMA,cAAc,CAAkB;EAC3CC,WAAWA,CAASC,aAAuC,EAAUC,kBAAiC,EAAE;IAAA,KAApFD,aAAuC,GAAvCA,aAAuC;IAAA,KAAUC,kBAAiC,GAAjCA,kBAAiC;IAAA,IAAAC,gBAAA,GAAAC,OAAA,6BAClF,gBAAgB;IAAA,IAAAD,gBAAA,GAAAC,OAAA,iBAClB,iBAAgB,IAAI,CAACC,iBAAkB,YAAW,IAAI,CAACJ,aAAa,CAACK,KAAM,EAAC;IAAA,IAAAH,gBAAA,GAAAC,OAAA,kBAmBrF,IAAI,CAACH,aAAa,CAACM,MAAM;IAClC;IAAA,IAAAJ,gBAAA,GAAAC,OAAA,uBACc,IAAI,CAACI,oBAAoB,CAACC,MAAM,CAAC,IAAI,CAACR,aAAa,CAACS,WAAW,CAAC;EAvB2B;EAIzG,IAAIF,oBAAoBA,CAAA,EAAG;IACzB,OAAO,CACL,OAAOG,GAAgC,EAAEC,GAAa,EAAEC,IAAkB,KAAK;MAAA,IAAAC,qBAAA;MAC7E,MAAMC,gBAAgB,IAAAD,qBAAA,GAAG,IAAI,CAACb,aAAa,CAACc,gBAAgB,cAAAD,qBAAA,cAAAA,qBAAA,GAAI,IAAI;MACpE,IAAIC,gBAAgB,EAAE;QACpB,MAAM;UAAEC;QAAY,CAAC,GAAGL,GAAG,CAACM,MAAM;QAClC,MAAMC,IAAI,GAAG,IAAI,CAAChB,kBAAkB,CAACiB,OAAO,CAAC,CAAC;QAC9C,MAAMC,MAAM,GAAG,MAAMF,IAAI,CAACG,kBAAkB,CAACL,WAAW,CAAC;QACzD,MAAMM,SAAS,GAAG,MAAMJ,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;QACxC;QACAT,GAAG,CAACW,SAAS,GAAGA,SAAS;MAC3B;MACAT,IAAI,CAAC,CAAC;IACR,CAAC,CACF;EACH;AAKF;AAACW,OAAA,CAAAzB,cAAA,GAAAA,cAAA"}
1
+ {"version":3,"names":["ComponentRoute","constructor","registerRoute","componentExtension","dynamicRouteRegex","route","method","componentMiddlewares","concat","middlewares","req","res","next","resolveComponent","componentId","params","host","getHost","compId","resolveComponentId","component","get"],"sources":["component.route.ts"],"sourcesContent":["import { NextFunction, Request, Response, Route } from '@teambit/express';\n\nimport { ComponentMain } from './component.main.runtime';\n\nexport type RegisteredComponentRoute = Route & {\n resolveComponent?: boolean;\n};\n\nexport type ComponentUrlParams = {\n componentId: string;\n};\n\nexport class ComponentRoute implements Route {\n constructor(private registerRoute: RegisteredComponentRoute, private componentExtension: ComponentMain) {}\n dynamicRouteRegex = '/?[^/@]+/[^~]*';\n readonly route = `/:componentId(${this.dynamicRouteRegex})/~aspect${this.registerRoute.route}`;\n\n get componentMiddlewares() {\n return [\n async (req: Request<ComponentUrlParams>, res: Response, next: NextFunction) => {\n const resolveComponent = this.registerRoute.resolveComponent ?? true;\n if (resolveComponent) {\n const { componentId } = req.params;\n const host = this.componentExtension.getHost();\n const compId = await host.resolveComponentId(componentId);\n const component = await host.get(compId);\n // @ts-ignore\n req.component = component;\n }\n next();\n },\n ];\n }\n\n method = this.registerRoute.method;\n // @ts-ignore\n middlewares = this.componentMiddlewares.concat(this.registerRoute.middlewares);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAYO,MAAMA,cAAc,CAAkB;EAC3CC,WAAW,CAASC,aAAuC,EAAUC,kBAAiC,EAAE;IAAA,KAApFD,aAAuC,GAAvCA,aAAuC;IAAA,KAAUC,kBAAiC,GAAjCA,kBAAiC;IAAA,2DAClF,gBAAgB;IAAA,+CAClB,iBAAgB,IAAI,CAACC,iBAAkB,YAAW,IAAI,CAACF,aAAa,CAACG,KAAM,EAAC;IAAA,gDAmBrF,IAAI,CAACH,aAAa,CAACI,MAAM;IAAA,qDAEpB,IAAI,CAACC,oBAAoB,CAACC,MAAM,CAAC,IAAI,CAACN,aAAa,CAACO,WAAW,CAAC;EAvB2B;EAIzG,IAAIF,oBAAoB,GAAG;IACzB,OAAO,CACL,OAAOG,GAAgC,EAAEC,GAAa,EAAEC,IAAkB,KAAK;MAAA;MAC7E,MAAMC,gBAAgB,4BAAG,IAAI,CAACX,aAAa,CAACW,gBAAgB,yEAAI,IAAI;MACpE,IAAIA,gBAAgB,EAAE;QACpB,MAAM;UAAEC;QAAY,CAAC,GAAGJ,GAAG,CAACK,MAAM;QAClC,MAAMC,IAAI,GAAG,IAAI,CAACb,kBAAkB,CAACc,OAAO,EAAE;QAC9C,MAAMC,MAAM,GAAG,MAAMF,IAAI,CAACG,kBAAkB,CAACL,WAAW,CAAC;QACzD,MAAMM,SAAS,GAAG,MAAMJ,IAAI,CAACK,GAAG,CAACH,MAAM,CAAC;QACxC;QACAR,GAAG,CAACU,SAAS,GAAGA,SAAS;MAC3B;MACAR,IAAI,EAAE;IACR,CAAC,CACF;EACH;AAKF;AAAC"}
@@ -170,9 +170,6 @@ class ComponentUI {
170
170
  this.commandBarUI = commandBarUI;
171
171
  (0, _defineProperty2().default)(this, "routePath", `/*`);
172
172
  (0, _defineProperty2().default)(this, "componentSearcher", void 0);
173
- /**
174
- * the current visible component
175
- */
176
173
  (0, _defineProperty2().default)(this, "activeComponent", void 0);
177
174
  (0, _defineProperty2().default)(this, "copyNpmId", () => {
178
175
  var _this$activeComponent;
@@ -184,9 +181,6 @@ class ComponentUI {
184
181
  (0, _copyToClipboard().default)(`${packageName}${versionString}`);
185
182
  }
186
183
  });
187
- /**
188
- * key bindings used by component aspect
189
- */
190
184
  (0, _defineProperty2().default)(this, "keyBindings", [{
191
185
  id: 'component.copyBitId',
192
186
  // TODO - extract to a component!
@@ -274,7 +268,6 @@ class ComponentUI {
274
268
  (0, _defineProperty2().default)(this, "registerPageItem", (...items) => {
275
269
  this.pageItemSlot.register(items);
276
270
  });
277
- /** register widgets to the components listed in the command bar */
278
271
  (0, _defineProperty2().default)(this, "registerSearchResultWidget", (...items) => {
279
272
  this.componentSearchResultSlot.register(items);
280
273
  const totalPlugins = (0, _lodash().default)(this.componentSearchResultSlot.values());
@@ -291,6 +284,11 @@ class ComponentUI {
291
284
  get routes() {
292
285
  return this.routeSlot.toArray().map(([key, routes]) => [key, Array.isArray(routes) ? [...(0, _lodash().default)(routes)] : [routes]]);
293
286
  }
287
+
288
+ /**
289
+ * the current visible component
290
+ */
291
+
294
292
  formatToInstallableVersion(version) {
295
293
  return (0, _componentPackageVersion().snapToSemver)(version);
296
294
  }