@teambit/component 1.0.667 → 1.0.669

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 (122) hide show
  1. package/aspect.section.tsx +1 -1
  2. package/component-map/component-map.ts +2 -2
  3. package/component.ui.runtime.tsx +17 -11
  4. package/dist/aspect-entry.d.ts +2 -2
  5. package/dist/aspect-entry.js.map +1 -1
  6. package/dist/aspect-list.d.ts +2 -1
  7. package/dist/aspect-list.js.map +1 -1
  8. package/dist/aspect.section.d.ts +1 -1
  9. package/dist/aspect.section.js.map +1 -1
  10. package/dist/component-factory.d.ts +8 -8
  11. package/dist/component-factory.js.map +1 -1
  12. package/dist/component-interface.d.ts +1 -1
  13. package/dist/component-interface.js.map +1 -1
  14. package/dist/component-map/component-map.d.ts +2 -2
  15. package/dist/component-map/component-map.js.map +1 -1
  16. package/dist/component-meta.d.ts +2 -1
  17. package/dist/component-meta.js.map +1 -1
  18. package/dist/component.d.ts +12 -12
  19. package/dist/component.graphql.d.ts +2 -2
  20. package/dist/component.graphql.js.map +1 -1
  21. package/dist/component.js.map +1 -1
  22. package/dist/component.main.runtime.d.ts +12 -12
  23. package/dist/component.main.runtime.js.map +1 -1
  24. package/dist/component.route.d.ts +2 -2
  25. package/dist/component.route.js.map +1 -1
  26. package/dist/component.ui.runtime.d.ts +10 -10
  27. package/dist/component.ui.runtime.js.map +1 -1
  28. package/dist/config.d.ts +2 -2
  29. package/dist/config.js.map +1 -1
  30. package/dist/exceptions/main-file-not-found.d.ts +1 -1
  31. package/dist/exceptions/main-file-not-found.js.map +1 -1
  32. package/dist/get-component-opts.d.ts +2 -2
  33. package/dist/get-component-opts.js.map +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/{preview-1753809186996.js → preview-1753848836384.js} +2 -2
  37. package/dist/section/section.d.ts +1 -1
  38. package/dist/section/section.js.map +1 -1
  39. package/dist/show/extensions.fragment.d.ts +2 -2
  40. package/dist/show/extensions.fragment.js.map +1 -1
  41. package/dist/show/files.fragment.d.ts +2 -2
  42. package/dist/show/files.fragment.js.map +1 -1
  43. package/dist/show/id.fragment.d.ts +2 -2
  44. package/dist/show/id.fragment.js.map +1 -1
  45. package/dist/show/legacy-show/docs-template.d.ts +1 -1
  46. package/dist/show/legacy-show/docs-template.js.map +1 -1
  47. package/dist/show/legacy-show/get-consumer-component.js.map +1 -1
  48. package/dist/show/legacy-show/get-scope-component.d.ts +1 -1
  49. package/dist/show/legacy-show/get-scope-component.js.map +1 -1
  50. package/dist/show/legacy-show/show-legacy-cmd.d.ts +1 -1
  51. package/dist/show/legacy-show/show-legacy-cmd.js.map +1 -1
  52. package/dist/show/main-file.fragment.d.ts +2 -2
  53. package/dist/show/main-file.fragment.js.map +1 -1
  54. package/dist/show/name.fragment.d.ts +2 -2
  55. package/dist/show/name.fragment.js.map +1 -1
  56. package/dist/show/scope.fragment.d.ts +2 -2
  57. package/dist/show/scope.fragment.js.map +1 -1
  58. package/dist/show/show-fragment.d.ts +1 -1
  59. package/dist/show/show-fragment.js.map +1 -1
  60. package/dist/show/show.cmd.d.ts +3 -3
  61. package/dist/show/show.cmd.js.map +1 -1
  62. package/dist/snap/snap.d.ts +1 -1
  63. package/dist/snap/snap.js.map +1 -1
  64. package/dist/state.d.ts +3 -3
  65. package/dist/state.js.map +1 -1
  66. package/dist/tag-map.d.ts +3 -3
  67. package/dist/tag-map.js.map +1 -1
  68. package/dist/ui/component-model/component-model.d.ts +9 -7
  69. package/dist/ui/component-model/component-model.js.map +1 -1
  70. package/dist/ui/component-searcher/component-result.d.ts +3 -2
  71. package/dist/ui/component-searcher/component-result.js.map +1 -1
  72. package/dist/ui/component-searcher/component-searcher.d.ts +4 -3
  73. package/dist/ui/component-searcher/component-searcher.js.map +1 -1
  74. package/dist/ui/component.d.ts +5 -5
  75. package/dist/ui/component.js.map +1 -1
  76. package/dist/ui/context/component-provider.d.ts +2 -2
  77. package/dist/ui/context/component-provider.js.map +1 -1
  78. package/dist/ui/menu/menu-nav.d.ts +1 -1
  79. package/dist/ui/menu/menu-nav.js.map +1 -1
  80. package/dist/ui/menu/menu.d.ts +8 -7
  81. package/dist/ui/menu/menu.js.map +1 -1
  82. package/dist/ui/menu/nav-plugin.d.ts +4 -4
  83. package/dist/ui/menu/nav-plugin.js.map +1 -1
  84. package/dist/ui/top-bar-nav/top-bar-nav.d.ts +1 -1
  85. package/dist/ui/top-bar-nav/top-bar-nav.js.map +1 -1
  86. package/dist/ui/use-component-logs.d.ts +1 -1
  87. package/dist/ui/use-component-logs.js.map +1 -1
  88. package/dist/ui/use-component-query.d.ts +1 -1
  89. package/dist/ui/use-component-query.js.map +1 -1
  90. package/dist/ui/use-component.d.ts +2 -1
  91. package/dist/ui/use-component.js.map +1 -1
  92. package/dist/ui/use-component.model.d.ts +5 -5
  93. package/dist/ui/use-component.model.js.map +1 -1
  94. package/exceptions/main-file-not-found.ts +1 -1
  95. package/package.json +33 -33
  96. package/section/section.tsx +1 -1
  97. package/show/extensions.fragment.ts +2 -2
  98. package/show/files.fragment.ts +2 -2
  99. package/show/id.fragment.ts +2 -2
  100. package/show/legacy-show/docs-template.ts +1 -1
  101. package/show/legacy-show/get-consumer-component.ts +2 -1
  102. package/show/legacy-show/get-scope-component.ts +6 -4
  103. package/show/legacy-show/show-legacy-cmd.ts +1 -1
  104. package/show/main-file.fragment.ts +2 -2
  105. package/show/name.fragment.ts +2 -2
  106. package/show/scope.fragment.ts +2 -2
  107. package/show/show-fragment.ts +1 -1
  108. package/show/show.cmd.ts +3 -3
  109. package/snap/snap.ts +1 -1
  110. package/ui/component-model/component-model.ts +9 -7
  111. package/ui/component-searcher/component-result.tsx +3 -2
  112. package/ui/component-searcher/component-searcher.tsx +5 -3
  113. package/ui/component.tsx +7 -5
  114. package/ui/context/component-provider.tsx +3 -2
  115. package/ui/menu/menu-nav.tsx +1 -1
  116. package/ui/menu/menu.tsx +18 -8
  117. package/ui/menu/nav-plugin.tsx +4 -4
  118. package/ui/top-bar-nav/top-bar-nav.tsx +1 -1
  119. package/ui/use-component-logs.ts +2 -2
  120. package/ui/use-component-query.ts +1 -1
  121. package/ui/use-component.model.ts +5 -5
  122. package/ui/use-component.tsx +2 -1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';
3
- import { Section } from './section';
3
+ import type { Section } from './section';
4
4
  import { AspectPage } from './ui/aspect-page';
5
5
 
6
6
  export class AspectSection implements Section {
@@ -1,5 +1,5 @@
1
- import { ComponentID } from '@teambit/component-id';
2
- import { Component } from '../component';
1
+ import type { ComponentID } from '@teambit/component-id';
2
+ import type { Component } from '../component';
3
3
 
4
4
  /**
5
5
  * allows to index components -> values.
@@ -3,34 +3,40 @@ import flatten from 'lodash.flatten';
3
3
  import copy from 'copy-to-clipboard';
4
4
  import type { RouteProps } from 'react-router-dom';
5
5
  import type { LinkProps } from '@teambit/base-react.navigation.link';
6
- import { CommandBarAspect, CommandBarUI, CommandEntry } from '@teambit/command-bar';
6
+ import type { CommandBarUI, CommandEntry } from '@teambit/command-bar';
7
+ import { CommandBarAspect } from '@teambit/command-bar';
7
8
  import { DeprecationIcon } from '@teambit/component.ui.deprecation-icon';
8
- import { Slot, SlotRegistry } from '@teambit/harmony';
9
+ import type { SlotRegistry } from '@teambit/harmony';
10
+ import { Slot } from '@teambit/harmony';
9
11
  import { PreviewAspect, ClickInsideAnIframeEvent } from '@teambit/preview';
10
- import { PubsubAspect, BitBaseEvent, PubsubUI } from '@teambit/pubsub';
11
- import { ReactRouterAspect, ReactRouterUI } from '@teambit/react-router';
12
+ import type { BitBaseEvent, PubsubUI } from '@teambit/pubsub';
13
+ import { PubsubAspect } from '@teambit/pubsub';
14
+ import type { ReactRouterUI } from '@teambit/react-router';
15
+ import { ReactRouterAspect } from '@teambit/react-router';
12
16
  import { UIRuntime } from '@teambit/ui';
13
17
  import { groupBy } from 'lodash';
14
18
  import { isBrowser } from '@teambit/ui-foundation.ui.is-browser';
15
- import { MenuItem, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';
19
+ import type { MenuItem, MenuItemSlot } from '@teambit/ui-foundation.ui.main-dropdown';
16
20
  import type { NavigationSlot, RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';
17
21
  import { Import } from '@teambit/ui-foundation.ui.use-box.menu';
18
22
  import { snapToSemver } from '@teambit/component-package-version';
19
23
  import { AspectSection } from './aspect.section';
20
24
  import { ComponentAspect } from './component.aspect';
21
- import { ComponentModel } from './ui';
22
- import { Component, ComponentPageElement, ComponentPageSlot } from './ui/component';
23
- import { ComponentResultPlugin, ComponentSearcher } from './ui/component-searcher';
24
- import {
25
+ import type { ComponentModel } from './ui';
26
+ import type { ComponentPageElement, ComponentPageSlot } from './ui/component';
27
+ import { Component } from './ui/component';
28
+ import type { ComponentResultPlugin } from './ui/component-searcher';
29
+ import { ComponentSearcher } from './ui/component-searcher';
30
+ import type {
25
31
  ConsumeMethodSlot,
26
32
  ConsumePlugin,
27
- ComponentMenu,
28
33
  NavPlugin,
29
34
  OrderedNavigationSlot,
30
35
  RightSideMenuItem,
31
36
  RightSideMenuSlot,
32
37
  } from './ui/menu';
33
- import { GetComponentsOptions } from './get-component-opts';
38
+ import { ComponentMenu } from './ui/menu';
39
+ import type { GetComponentsOptions } from './get-component-opts';
34
40
 
35
41
  export type ComponentSearchResultSlot = SlotRegistry<ComponentResultPlugin[]>;
36
42
 
@@ -2,8 +2,8 @@
2
2
  * avoid importing any (non-type) legacy code here. otherwise, PreviewTask will throw cryptic errors
3
3
  */
4
4
  import type { ExtensionDataEntry } from '@teambit/legacy.extension-data';
5
- import { ComponentID } from '@teambit/component-id';
6
- import { RawComponentMetadata } from './component-interface';
5
+ import type { ComponentID } from '@teambit/component-id';
6
+ import type { RawComponentMetadata } from './component-interface';
7
7
  export type Serializable = {
8
8
  toString(): string;
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"names":["AspectEntry","constructor","id","legacyEntry","legacy","isLegacy","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.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(\n public id: ComponentID,\n private legacyEntry: ExtensionDataEntry\n ) {}\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,CACFC,EAAe,EACdC,WAA+B,EACvC;IAAA,KAFOD,EAAe,GAAfA,EAAe;IAAA,KACdC,WAA+B,GAA/BA,WAA+B;EACtC;EAEH,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,WAAW;EACzB;EAEA,IAAIE,QAAQA,CAAA,EAAY;IACtB,IAAI,IAAI,CAACC,MAAM,EAAEC,QAAQ,EAAE,OAAO,IAAI;IACtC,OAAO,KAAK;EACd;EAEA,IAAID,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACF,MAAM,CAACE,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAM,EAAE;IACjB,IAAI,CAACF,MAAM,CAACE,MAAM,GAAGA,MAAM;EAC7B;EAEA,IAAIE,IAAIA,CAAA,EAA2B;IACjC,OAAO,IAAI,CAACJ,MAAM,CAACI,IAAI;EACzB;EAEA,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACL,MAAM,CAACK,SAAS;EAC9B;;EAEA;EACA,IAAID,IAAIA,CAACE,GAA2B,EAAE;IACpC,IAAI,CAACN,MAAM,CAACI,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,IAAIZ,WAAW,CAAC,IAAI,CAACE,EAAE,EAAEW,QAAQ,CAACT,MAAM,CAAC;EAClD;EAEAU,KAAKA,CAAA,EAAgB;IACnB,OAAO,IAAId,WAAW,CAAC,IAAI,CAACE,EAAE,EAAE,IAAI,CAACC,WAAW,CAACW,KAAK,CAAC,CAAC,CAAC;EAC3D;EAEAC,SAASA,CAAA,EAAyB;IAChC,OAAO;MACLb,EAAE,EAAE,IAAI,CAACA,EAAE,CAACc,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,CAAAlB,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["AspectEntry","constructor","id","legacyEntry","legacy","isLegacy","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.extension-data';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { 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(\n public id: ComponentID,\n private legacyEntry: ExtensionDataEntry\n ) {}\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,CACFC,EAAe,EACdC,WAA+B,EACvC;IAAA,KAFOD,EAAe,GAAfA,EAAe;IAAA,KACdC,WAA+B,GAA/BA,WAA+B;EACtC;EAEH,IAAIC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,WAAW;EACzB;EAEA,IAAIE,QAAQA,CAAA,EAAY;IACtB,IAAI,IAAI,CAACC,MAAM,EAAEC,QAAQ,EAAE,OAAO,IAAI;IACtC,OAAO,KAAK;EACd;EAEA,IAAID,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACF,MAAM,CAACE,MAAM;EAC3B;EAEA,IAAIA,MAAMA,CAACA,MAAM,EAAE;IACjB,IAAI,CAACF,MAAM,CAACE,MAAM,GAAGA,MAAM;EAC7B;EAEA,IAAIE,IAAIA,CAAA,EAA2B;IACjC,OAAO,IAAI,CAACJ,MAAM,CAACI,IAAI;EACzB;EAEA,IAAIC,SAASA,CAAA,EAAY;IACvB,OAAO,IAAI,CAACL,MAAM,CAACK,SAAS;EAC9B;;EAEA;EACA,IAAID,IAAIA,CAACE,GAA2B,EAAE;IACpC,IAAI,CAACN,MAAM,CAACI,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,IAAIZ,WAAW,CAAC,IAAI,CAACE,EAAE,EAAEW,QAAQ,CAACT,MAAM,CAAC;EAClD;EAEAU,KAAKA,CAAA,EAAgB;IACnB,OAAO,IAAId,WAAW,CAAC,IAAI,CAACE,EAAE,EAAE,IAAI,CAACC,WAAW,CAACW,KAAK,CAAC,CAAC,CAAC;EAC3D;EAEAC,SAASA,CAAA,EAAyB;IAChC,OAAO;MACLb,EAAE,EAAE,IAAI,CAACA,EAAE,CAACc,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,CAAAlB,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import { ExtensionDataList } from '@teambit/legacy.extension-data';
2
2
  import { ComponentID } from '@teambit/component-id';
3
- import { AspectEntry, SerializableMap } from './aspect-entry';
3
+ import type { SerializableMap } from './aspect-entry';
4
+ import { AspectEntry } from './aspect-entry';
4
5
  /**
5
6
  * list of aspects, each may have data and artifacts saved per component.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_legacy","data","require","_componentId","_aspectEntry","AspectList","constructor","entries","addEntry","aspectId","extensionDataEntry","ExtensionDataEntry","undefined","entry","AspectEntry","push","upsertEntry","existingEntry","find","id","isEqual","withoutEntries","aspectIds","filter","includes","legacy","stringId","ids","list","map","toString","get","toStringWithoutVersion","ignoreVersion","aspectEntry","predicate","pmap","entriesP","Promise","all","toConfigObject","res","forEach","config","removeInternalConfigFields","rawConfig","serialize","serializedEntries","length","toLegacy","legacyEntries","ExtensionDataList","fromArray","stringIds","clone","fromLegacyExtensions","legacyDataList","newEntries","getAspectId","exports","extensionId","name","ComponentID","fromString","Error"],"sources":["aspect-list.ts"],"sourcesContent":["import { ExtensionDataList, ExtensionDataEntry, removeInternalConfigFields } from '@teambit/legacy.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, undefined, {}, data);\n const entry = new AspectEntry(aspectId, extensionDataEntry);\n this.entries.push(entry);\n return entry;\n }\n\n upsertEntry(aspectId: ComponentID, data: SerializableMap = {}) {\n const existingEntry = this.entries.find((entry) => entry.id.isEqual(aspectId));\n if (existingEntry) {\n existingEntry.data = data;\n return existingEntry;\n }\n return this.addEntry(aspectId, data);\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.legacy.rawConfig);\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): AspectList {\n const newEntries = legacyDataList.map((entry) => {\n return new AspectEntry(getAspectId(entry), entry);\n });\n\n return new AspectList(newEntries);\n }\n}\n\nfunction getAspectId(entry: ExtensionDataEntry) {\n if (!entry.extensionId && entry.name) return ComponentID.fromString(entry.name);\n if (entry.extensionId) return entry.extensionId;\n throw new Error('aspect cannot be loaded without setting an ID');\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_legacy","data","require","_componentId","_aspectEntry","AspectList","constructor","entries","addEntry","aspectId","extensionDataEntry","ExtensionDataEntry","undefined","entry","AspectEntry","push","upsertEntry","existingEntry","find","id","isEqual","withoutEntries","aspectIds","filter","includes","legacy","stringId","ids","list","map","toString","get","toStringWithoutVersion","ignoreVersion","aspectEntry","predicate","pmap","entriesP","Promise","all","toConfigObject","res","forEach","config","removeInternalConfigFields","rawConfig","serialize","serializedEntries","length","toLegacy","legacyEntries","ExtensionDataList","fromArray","stringIds","clone","fromLegacyExtensions","legacyDataList","newEntries","getAspectId","exports","extensionId","name","ComponentID","fromString","Error"],"sources":["aspect-list.ts"],"sourcesContent":["import { ExtensionDataList, ExtensionDataEntry, removeInternalConfigFields } from '@teambit/legacy.extension-data';\nimport { ComponentID } from '@teambit/component-id';\nimport type { SerializableMap } from './aspect-entry';\nimport { AspectEntry } 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, undefined, {}, data);\n const entry = new AspectEntry(aspectId, extensionDataEntry);\n this.entries.push(entry);\n return entry;\n }\n\n upsertEntry(aspectId: ComponentID, data: SerializableMap = {}) {\n const existingEntry = this.entries.find((entry) => entry.id.isEqual(aspectId));\n if (existingEntry) {\n existingEntry.data = data;\n return existingEntry;\n }\n return this.addEntry(aspectId, data);\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.legacy.rawConfig);\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): AspectList {\n const newEntries = legacyDataList.map((entry) => {\n return new AspectEntry(getAspectId(entry), entry);\n });\n\n return new AspectList(newEntries);\n }\n}\n\nfunction getAspectId(entry: ExtensionDataEntry) {\n if (!entry.extensionId && entry.name) return ComponentID.fromString(entry.name);\n if (entry.extensionId) return entry.extensionId;\n throw new Error('aspect cannot be loaded without setting an ID');\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { Section } from './section';
1
+ import type { Section } from './section';
2
2
  export declare class AspectSection implements Section {
3
3
  route: {
4
4
  path: string;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireDefault","require","_uiFoundationUi","_aspectPage","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectSection","constructor","path","element","createElement","AspectPage","href","children","MenuWidgetIcon","icon","tooltipContent","displayName","hideInMinimalMode","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 hideInMinimalMode: true,\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;AAA8C,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEvC,MAAMgB,aAAa,CAAoB;EAAAC,YAAA;IAAAnB,eAAA,gBACpC;MACNoB,IAAI,EAAE,SAAS;MACfC,OAAO,eAAE9B,MAAA,GAAAQ,OAAA,CAAAuB,aAAA,CAAC1B,WAAA,GAAA2B,UAAU,MAAE;IACxB,CAAC;IAAAvB,eAAA,yBACgB;MACfwB,IAAI,EAAE,SAAS;MACfC,QAAQ,eAAElC,MAAA,GAAAQ,OAAA,CAAAuB,aAAA,CAAC3B,eAAA,GAAA+B,cAAc;QAACC,IAAI,EAAC,eAAe;QAACC,cAAc,EAAC;MAAe,CAAE,CAAC;MAChFC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE;IACrB,CAAC;IAAA9B,eAAA,gBACO,EAAE;EAAA;AACZ;AAAC+B,OAAA,CAAAb,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireDefault","require","_uiFoundationUi","_aspectPage","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","AspectSection","constructor","path","element","createElement","AspectPage","href","children","MenuWidgetIcon","icon","tooltipContent","displayName","hideInMinimalMode","exports"],"sources":["aspect.section.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuWidgetIcon } from '@teambit/ui-foundation.ui.menu-widget-icon';\nimport type { 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 hideInMinimalMode: true,\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;AAA8C,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEvC,MAAMgB,aAAa,CAAoB;EAAAC,YAAA;IAAAnB,eAAA,gBACpC;MACNoB,IAAI,EAAE,SAAS;MACfC,OAAO,eAAE9B,MAAA,GAAAQ,OAAA,CAAAuB,aAAA,CAAC1B,WAAA,GAAA2B,UAAU,MAAE;IACxB,CAAC;IAAAvB,eAAA,yBACgB;MACfwB,IAAI,EAAE,SAAS;MACfC,QAAQ,eAAElC,MAAA,GAAAQ,OAAA,CAAAuB,aAAA,CAAC3B,eAAA,GAAA+B,cAAc;QAACC,IAAI,EAAC,eAAe;QAACC,cAAc,EAAC;MAAe,CAAE,CAAC;MAChFC,WAAW,EAAE,eAAe;MAC5BC,iBAAiB,EAAE;IACrB,CAAC;IAAA9B,eAAA,gBACO,EAAE;EAAA;AACZ;AAAC+B,OAAA,CAAAb,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -1,14 +1,14 @@
1
- import { Graph } from '@teambit/graph.cleargraph';
2
- import { BitId } from '@teambit/legacy-bit-id';
3
- import { ComponentID } from '@teambit/component-id';
4
- import { ConsumerComponent } from '@teambit/legacy.consumer-component';
5
- import { CompIdGraph } from '@teambit/graph';
1
+ import type { Graph } from '@teambit/graph.cleargraph';
2
+ import type { BitId } from '@teambit/legacy-bit-id';
3
+ import type { ComponentID } from '@teambit/component-id';
4
+ import type { ConsumerComponent } from '@teambit/legacy.consumer-component';
5
+ import type { CompIdGraph } from '@teambit/graph';
6
6
  import type { ComponentLog } from '@teambit/objects';
7
7
  import type { AspectDefinition } from '@teambit/aspect-loader';
8
8
  import type { DependencyList } from '@teambit/dependency-resolver';
9
- import { Component, InvalidComponent } from './component';
10
- import { State } from './state';
11
- import { Snap } from './snap';
9
+ import type { Component, InvalidComponent } from './component';
10
+ import type { State } from './state';
11
+ import type { Snap } from './snap';
12
12
  export type ResolveAspectsOptions = FilterAspectsOptions & {
13
13
  throwOnError?: boolean;
14
14
  useScopeAspectsCapsule?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["component-factory.ts"],"sourcesContent":["import { Graph } from '@teambit/graph.cleargraph';\nimport { BitId } from '@teambit/legacy-bit-id';\nimport { ComponentID } from '@teambit/component-id';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { CompIdGraph } from '@teambit/graph';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport { Component, InvalidComponent } from './component';\nimport { State } from './state';\nimport { Snap } from './snap';\n\nexport type ResolveAspectsOptions = FilterAspectsOptions & {\n throwOnError?: boolean;\n useScopeAspectsCapsule?: boolean;\n workspaceName?: string;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n packageManagerConfigRootDir?: string;\n};\n\nexport type LoadAspectsOptions = {\n /* `throwOnError` is an optional parameter that can be passed to the loadAspects method in the `ComponentFactory` interface. If\n set to `true`, it will cause the method to throw an error if an error occurs during its execution. If set to `false`\n or not provided, the method will print a warning instead of throwing it. */\n throwOnError?: boolean;\n /* `hideMissingModuleError` is an optional parameter that can be passed to the `loadAspects` method in the\n `ComponentFactory` interface. If set to `true`, it will prevent the method from throwing/printing an error if a required module\n is missing during the loading of an aspect. Instead, it will continue loading the other\n aspects. If set to `false` or not provided, the method will print/throw an error if a required module is missing.\n (considering throwOnError as well) */\n hideMissingModuleError?: boolean;\n\n /* The `ignoreErrorFunc` property is an optional parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If provided, it will be called with the error that occurred during the loading of\n aspects. If the function returns `true`, the method will ignore the error and continue loading the other aspects.\n If the function returns `false`, the method will print/throw the error. */\n ignoreErrorFunc?: (err: Error) => boolean;\n\n /* The `ignoreErrors` property is an optional boolean parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If set to `true`, it will cause the `loadAspects` method to ignore any errors that\n occur during the loading of aspects and continue loading the other aspects. If set to `false` or not provided, the\n method will print/throw an error if a required module is missing or if any other error occurs during the loading of\n aspects. */\n ignoreErrors?: boolean;\n\n /**\n * Force load the aspect from the host, even if it's already loaded.\n */\n forceLoad?: boolean;\n\n [key: string]: any;\n};\n\nexport type FilterAspectsOptions = {\n /**\n * Do not return results for the core aspects\n */\n excludeCore?: boolean;\n /**\n * Only return results for the provided list of ids\n */\n requestedOnly?: boolean;\n /**\n * Only return results for aspects that have a path to the specified runtime name\n */\n filterByRuntime?: boolean;\n};\n\nexport interface ComponentFactory {\n /**\n * name of the component host.\n */\n name: string;\n\n /**\n * path to the component host.\n */\n path: string;\n\n isLegacy: boolean;\n\n /**\n * resolve a `string` component ID to an instance of a ComponentID.\n */\n resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID>;\n\n /**\n * resolve multiple `string` component ID to an instance of a ComponentID.\n */\n resolveMultipleComponentIds(ids: (string | BitId | ComponentID)[]): Promise<ComponentID[]>;\n\n /**\n * returns a component by ID.\n */\n get(id: ComponentID): Promise<Component | undefined>;\n\n /**\n * returns the legacy representation of a component with minimal loading.\n * when loaded from the workspace, it won't run any Harmony hooks and even won't load dependencies.\n * it's good to get raw aspects data or some basic properties.\n * use carefully. prefer using `get()` instead.\n */\n getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined>;\n\n /**\n * returns many components by ids.\n */\n getMany(ids: ComponentID[]): Promise<Component[]>;\n\n /**\n * returns many components by their legacy representation.\n */\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]>;\n\n /**\n * get a component from a remote without importing it\n */\n getRemoteComponent?: (id: ComponentID) => Promise<Component>;\n\n /**\n * important - prefer using `getGraphIds()` if you don't need the component objects.\n * this method has a performance penalty. it must import all flattened-dependencies objects from the remotes.\n */\n getGraph(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<Graph<Component, string>>;\n\n /**\n * get graph of the given component-ids and all their dependencies (recursively/flattened).\n * the nodes are ComponentIds and is much faster than `this.getGraph()`.\n */\n getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<CompIdGraph>;\n\n getLogs(id: ComponentID, shortHash?: boolean, startsFrom?: string): Promise<ComponentLog[]>;\n\n getDependencies(component: Component): DependencyList;\n\n componentPackageName(component: Component): string;\n\n /**\n * returns a specific state of a component by hash or semver.\n */\n getState(id: ComponentID, snapId: string): Promise<State>;\n\n /**\n * returns a specific snap of a component by hash.\n */\n getSnap(id: ComponentID, snapId: string): Promise<Snap>;\n\n /**\n * load aspects.\n * returns the loaded aspect ids including the loaded versions.\n */\n loadAspects: (ids: string[], throwOnError?: boolean, neededFor?: string, opts?: any) => Promise<string[]>;\n\n /**\n * Resolve dirs for aspects\n */\n resolveAspects: (\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ) => Promise<AspectDefinition[]>;\n\n /**\n * list all components in the host.\n */\n list(filter?: { offset: number; limit: number }): Promise<Component[]>;\n\n /**\n * list invalid components, such as components with missing files on the fs.\n */\n listInvalid(): Promise<InvalidComponent[]>;\n\n listIds(): Promise<ComponentID[]> | ComponentID[];\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n idsByPattern(pattern: string, throwForNoMatch?: boolean): Promise<ComponentID[]>;\n\n hasId(componentId: ComponentID): Promise<boolean> | boolean;\n\n /**\n * Check if the host has the id, if no, search for the id in inner host (for example, workspace will search in the scope)\n * @param componentId\n */\n hasIdNested(componentId: ComponentID, includeCache?: boolean): Promise<boolean>;\n\n /**\n * whether a component is not the same as its head.\n * for a new component, it'll return \"true\" as it has no head yet.\n * this is relevant for component from the workspace, where it can be locally changed. on the scope it's always false\n */\n isModified(component: Component): Promise<boolean>;\n\n /**\n * whether the component exists on the remote.\n */\n isExported(componentId: ComponentID): boolean;\n\n /**\n * write the component to the filesystem when applicable (no-op for scope).\n * to change the component-path, specify the \"rootPath\", which should be a relative path inside the workspace.\n */\n write(component: Component, rootPath?: string): Promise<void>;\n\n /**\n * determine whether host should be the prior one in case multiple hosts persist.\n */\n priority?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["component-factory.ts"],"sourcesContent":["import type { Graph } from '@teambit/graph.cleargraph';\nimport type { BitId } from '@teambit/legacy-bit-id';\nimport type { ComponentID } from '@teambit/component-id';\nimport type { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport type { CompIdGraph } from '@teambit/graph';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { AspectDefinition } from '@teambit/aspect-loader';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport type { Component, InvalidComponent } from './component';\nimport type { State } from './state';\nimport type { Snap } from './snap';\n\nexport type ResolveAspectsOptions = FilterAspectsOptions & {\n throwOnError?: boolean;\n useScopeAspectsCapsule?: boolean;\n workspaceName?: string;\n skipDeps?: boolean;\n resolveEnvsFromRoots?: boolean;\n packageManagerConfigRootDir?: string;\n};\n\nexport type LoadAspectsOptions = {\n /* `throwOnError` is an optional parameter that can be passed to the loadAspects method in the `ComponentFactory` interface. If\n set to `true`, it will cause the method to throw an error if an error occurs during its execution. If set to `false`\n or not provided, the method will print a warning instead of throwing it. */\n throwOnError?: boolean;\n /* `hideMissingModuleError` is an optional parameter that can be passed to the `loadAspects` method in the\n `ComponentFactory` interface. If set to `true`, it will prevent the method from throwing/printing an error if a required module\n is missing during the loading of an aspect. Instead, it will continue loading the other\n aspects. If set to `false` or not provided, the method will print/throw an error if a required module is missing.\n (considering throwOnError as well) */\n hideMissingModuleError?: boolean;\n\n /* The `ignoreErrorFunc` property is an optional parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If provided, it will be called with the error that occurred during the loading of\n aspects. If the function returns `true`, the method will ignore the error and continue loading the other aspects.\n If the function returns `false`, the method will print/throw the error. */\n ignoreErrorFunc?: (err: Error) => boolean;\n\n /* The `ignoreErrors` property is an optional boolean parameter that can be passed to the `LoadAspectsOptions` object in\n the `ComponentFactory` interface. If set to `true`, it will cause the `loadAspects` method to ignore any errors that\n occur during the loading of aspects and continue loading the other aspects. If set to `false` or not provided, the\n method will print/throw an error if a required module is missing or if any other error occurs during the loading of\n aspects. */\n ignoreErrors?: boolean;\n\n /**\n * Force load the aspect from the host, even if it's already loaded.\n */\n forceLoad?: boolean;\n\n [key: string]: any;\n};\n\nexport type FilterAspectsOptions = {\n /**\n * Do not return results for the core aspects\n */\n excludeCore?: boolean;\n /**\n * Only return results for the provided list of ids\n */\n requestedOnly?: boolean;\n /**\n * Only return results for aspects that have a path to the specified runtime name\n */\n filterByRuntime?: boolean;\n};\n\nexport interface ComponentFactory {\n /**\n * name of the component host.\n */\n name: string;\n\n /**\n * path to the component host.\n */\n path: string;\n\n isLegacy: boolean;\n\n /**\n * resolve a `string` component ID to an instance of a ComponentID.\n */\n resolveComponentId(id: string | BitId | ComponentID): Promise<ComponentID>;\n\n /**\n * resolve multiple `string` component ID to an instance of a ComponentID.\n */\n resolveMultipleComponentIds(ids: (string | BitId | ComponentID)[]): Promise<ComponentID[]>;\n\n /**\n * returns a component by ID.\n */\n get(id: ComponentID): Promise<Component | undefined>;\n\n /**\n * returns the legacy representation of a component with minimal loading.\n * when loaded from the workspace, it won't run any Harmony hooks and even won't load dependencies.\n * it's good to get raw aspects data or some basic properties.\n * use carefully. prefer using `get()` instead.\n */\n getLegacyMinimal(id: ComponentID): Promise<ConsumerComponent | undefined>;\n\n /**\n * returns many components by ids.\n */\n getMany(ids: ComponentID[]): Promise<Component[]>;\n\n /**\n * returns many components by their legacy representation.\n */\n getManyByLegacy(components: ConsumerComponent[]): Promise<Component[]>;\n\n /**\n * get a component from a remote without importing it\n */\n getRemoteComponent?: (id: ComponentID) => Promise<Component>;\n\n /**\n * important - prefer using `getGraphIds()` if you don't need the component objects.\n * this method has a performance penalty. it must import all flattened-dependencies objects from the remotes.\n */\n getGraph(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<Graph<Component, string>>;\n\n /**\n * get graph of the given component-ids and all their dependencies (recursively/flattened).\n * the nodes are ComponentIds and is much faster than `this.getGraph()`.\n */\n getGraphIds(ids?: ComponentID[], shouldThrowOnMissingDep?: boolean): Promise<CompIdGraph>;\n\n getLogs(id: ComponentID, shortHash?: boolean, startsFrom?: string): Promise<ComponentLog[]>;\n\n getDependencies(component: Component): DependencyList;\n\n componentPackageName(component: Component): string;\n\n /**\n * returns a specific state of a component by hash or semver.\n */\n getState(id: ComponentID, snapId: string): Promise<State>;\n\n /**\n * returns a specific snap of a component by hash.\n */\n getSnap(id: ComponentID, snapId: string): Promise<Snap>;\n\n /**\n * load aspects.\n * returns the loaded aspect ids including the loaded versions.\n */\n loadAspects: (ids: string[], throwOnError?: boolean, neededFor?: string, opts?: any) => Promise<string[]>;\n\n /**\n * Resolve dirs for aspects\n */\n resolveAspects: (\n runtimeName?: string,\n componentIds?: ComponentID[],\n opts?: ResolveAspectsOptions\n ) => Promise<AspectDefinition[]>;\n\n /**\n * list all components in the host.\n */\n list(filter?: { offset: number; limit: number }): Promise<Component[]>;\n\n /**\n * list invalid components, such as components with missing files on the fs.\n */\n listInvalid(): Promise<InvalidComponent[]>;\n\n listIds(): Promise<ComponentID[]> | ComponentID[];\n\n /**\n * get component-ids matching the given pattern. a pattern can have multiple patterns separated by a comma.\n * it uses multimatch (https://www.npmjs.com/package/multimatch) package for the matching algorithm, which supports\n * (among others) negate character \"!\" to exclude ids. See the package page for more supported characters.\n */\n idsByPattern(pattern: string, throwForNoMatch?: boolean): Promise<ComponentID[]>;\n\n hasId(componentId: ComponentID): Promise<boolean> | boolean;\n\n /**\n * Check if the host has the id, if no, search for the id in inner host (for example, workspace will search in the scope)\n * @param componentId\n */\n hasIdNested(componentId: ComponentID, includeCache?: boolean): Promise<boolean>;\n\n /**\n * whether a component is not the same as its head.\n * for a new component, it'll return \"true\" as it has no head yet.\n * this is relevant for component from the workspace, where it can be locally changed. on the scope it's always false\n */\n isModified(component: Component): Promise<boolean>;\n\n /**\n * whether the component exists on the remote.\n */\n isExported(componentId: ComponentID): boolean;\n\n /**\n * write the component to the filesystem when applicable (no-op for scope).\n * to change the component-path, specify the \"rootPath\", which should be a relative path inside the workspace.\n */\n write(component: Component, rootPath?: string): Promise<void>;\n\n /**\n * determine whether host should be the prior one in case multiple hosts persist.\n */\n priority?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { ComponentID } from '@teambit/component-id';
1
+ import type { ComponentID } from '@teambit/component-id';
2
2
  export interface IComponent {
3
3
  /**
4
4
  * id of the component.
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["component-interface.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\n\nexport interface IComponent {\n /**\n * id of the component.\n */\n id: ComponentID;\n\n /**\n * get function to retrieve aspect\n */\n get(aspectId: string): RawComponentMetadata | undefined;\n\n /**\n * determines whether a component is a modified state.\n * TODO: consider to remove after handling component descriptors correctly.\n */\n isModified(): Promise<boolean>;\n}\n\nexport type RawComponentMetadata = {\n id: string;\n config: Record<string, any>;\n data: Record<string, any>;\n icon?: string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["component-interface.ts"],"sourcesContent":["import type { ComponentID } from '@teambit/component-id';\n\nexport interface IComponent {\n /**\n * id of the component.\n */\n id: ComponentID;\n\n /**\n * get function to retrieve aspect\n */\n get(aspectId: string): RawComponentMetadata | undefined;\n\n /**\n * determines whether a component is a modified state.\n * TODO: consider to remove after handling component descriptors correctly.\n */\n isModified(): Promise<boolean>;\n}\n\nexport type RawComponentMetadata = {\n id: string;\n config: Record<string, any>;\n data: Record<string, any>;\n icon?: string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { ComponentID } from '@teambit/component-id';
2
- import { Component } from '../component';
1
+ import type { ComponentID } from '@teambit/component-id';
2
+ import type { Component } from '../component';
3
3
  /**
4
4
  * allows to index components -> values.
5
5
  */
@@ -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","asAsync","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 /**\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 async asAsync<U>(\n components: Component[],\n predicate: (component: Component) => Promise<U>\n ): Promise<ComponentMap<U>> {\n const tuples: [string, [Component, U]][] = await Promise.all(\n components.map(async (component) => {\n return [component.id.toString(), [component, await predicate(component)]];\n })\n );\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"],"mappings":"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","ignoreList":[]}
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","asAsync","exports"],"sources":["component-map.ts"],"sourcesContent":["import type { ComponentID } from '@teambit/component-id';\nimport type { 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 /**\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 async asAsync<U>(\n components: Component[],\n predicate: (component: Component) => Promise<U>\n ): Promise<ComponentMap<U>> {\n const tuples: [string, [Component, U]][] = await Promise.all(\n components.map(async (component) => {\n return [component.id.toString(), [component, await predicate(component)]];\n })\n );\n\n return new ComponentMap(new Map(tuples));\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import { ComponentID, ComponentIdObj } from '@teambit/component-id';
1
+ import type { ComponentIdObj } from '@teambit/component-id';
2
+ import { ComponentID } from '@teambit/component-id';
2
3
  export declare class ComponentMeta {
3
4
  /**
4
5
  * id the component.
@@ -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, ComponentIdObj } 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(): { id: ComponentIdObj } {\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,EAA2B;IACjC,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","ignoreList":[]}
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 type { ComponentIdObj } from '@teambit/component-id';\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(): { id: ComponentIdObj } {\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;AAEA,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,EAA2B;IACjC,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","ignoreList":[]}
@@ -1,17 +1,17 @@
1
- import { AnyFS } from '@teambit/any-fs';
2
- import { SemVer } from 'semver';
3
- import { ComponentID } from '@teambit/component-id';
4
- import { BuildStatus } from '@teambit/legacy.constants';
5
- import { ComponentLog } from '@teambit/objects';
1
+ import type { AnyFS } from '@teambit/any-fs';
2
+ import type { SemVer } from 'semver';
3
+ import type { ComponentID } from '@teambit/component-id';
4
+ import type { BuildStatus } from '@teambit/legacy.constants';
5
+ import type { ComponentLog } from '@teambit/objects';
6
6
  import type { DependencyList } from '@teambit/dependency-resolver';
7
- import { ComponentFactory } from './component-factory';
8
- import ComponentFS from './component-fs';
9
- import { Config as ComponentConfig } from './config';
10
- import { Snap } from './snap';
11
- import { State } from './state';
7
+ import type { ComponentFactory } from './component-factory';
8
+ import type ComponentFS from './component-fs';
9
+ import type { Config as ComponentConfig } from './config';
10
+ import type { Snap } from './snap';
11
+ import type { State } from './state';
12
12
  import { TagMap } from './tag-map';
13
- import { Tag } from './tag';
14
- import { IComponent, RawComponentMetadata } from './component-interface';
13
+ import type { Tag } from './tag';
14
+ import type { IComponent, RawComponentMetadata } from './component-interface';
15
15
  type SnapsIterableOpts = {
16
16
  firstParentOnly?: boolean;
17
17
  stopFn?: (snap: Snap) => Promise<boolean>;
@@ -1,3 +1,3 @@
1
- import { Schema } from '@teambit/graphql';
2
- import { ComponentMain } from './component.main.runtime';
1
+ import type { Schema } from '@teambit/graphql';
2
+ import type { ComponentMain } from './component.main.runtime';
3
3
  export declare function componentSchema(componentExtension: ComponentMain): Schema;
@@ -1 +1 @@
1
- {"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","_args","_context","info","extensionId","variableValues","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 { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport { ComponentLog } from '@teambit/objects';\nimport { Schema } from '@teambit/graphql';\nimport { Component } from './component';\nimport { ComponentFactory } from './component-factory';\nimport { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\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 element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\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): ComponentIdObj => 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 // Here only to not break old queries\n elementsUrl: () => undefined,\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 {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\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: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory, _args, _context, info) => {\n const extensionId = info.variableValues.extensionId;\n return extensionId ? `${host.name}/${extensionId}` : 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":"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ACA;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,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,SAAS,GAAGxB,SAA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","ignoreList":[]}
1
+ {"version":3,"names":["_stripAnsi","data","_interopRequireDefault","require","_graphqlTag","_graphqlTypeJson","_toolboxPath","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","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","serialize","elementsUrl","logs","head","takeHeadFromComponent","finalFilter","getLogs","ComponentHost","get","host","componentId","resolveComponentId","snaps","list","listInvalid","invalidComps","err","errorName","errorMessage","message","stripAnsi","_args","_context","info","extensionId","variableValues","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 type { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { pathNormalizeToLinux } from '@teambit/toolbox.path.path';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { Schema } from '@teambit/graphql';\nimport type { Component } from './component';\nimport type { ComponentFactory } from './component-factory';\nimport type { ComponentMain } from './component.main.runtime';\n\nexport function componentSchema(componentExtension: ComponentMain): Schema {\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 element url of the component - this is deprecated, and will return empty string now.\n it's here to not break old queries\n \"\"\"\n elementsUrl: String @deprecated(reason: \"Not in use anymore\")\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): ComponentIdObj => 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 // Here only to not break old queries\n elementsUrl: () => undefined,\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 {\n return null;\n }\n },\n snaps: async (host: ComponentFactory, { id }: { id: string }): Promise<ComponentLog[]> => {\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: id as ComponentID,\n errorName: err.name,\n errorMessage: err.message ? stripAnsi(err.message) : err.name,\n }));\n },\n id: async (host: ComponentFactory, _args, _context, info) => {\n const extensionId = info.variableValues.extensionId;\n return extensionId ? `${host.name}/${extensionId}` : 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,GAAAE,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;AAEA,SAAAK,aAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,YAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAkE,SAAAC,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAO3D,SAAS8B,eAAeA,CAACC,kBAAiC,EAAU;EACzE,OAAO;IACLC,QAAQ,EAAE,IAAAC,iBAAG;AACjB;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;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACDC,SAAS,EAAE;MACTC,UAAU,EAAEC,oCAAiB;MAC7BC,SAAS,EAAE;QACTC,EAAE,EAAGC,SAAoB,IAAqBA,SAAS,CAACD,EAAE,CAACE,QAAQ,CAAC,CAAC;QACrEC,WAAW,EAAGF,SAAoB,IAAKA,SAAS,CAACE,WAAW;QAC5DC,EAAE,EAAGH,SAAoB,IAAK;UAC5B,OAAOA,SAAS,CAACI,KAAK,CAACC,UAAU,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;QACtE,CAAC;QACDC,GAAG,EAAE,MAAOV,SAAoB,IAAK;UACnC,MAAMW,IAAI,GAAG,MAAMX,SAAS,CAACY,QAAQ,CAACZ,SAAS,CAACD,EAAE,CAACc,OAAO,CAAC;UAC3D,OAAA1C,aAAA,CAAAA,aAAA,KACKwC,IAAI;YACPG,IAAI,EAAEH,IAAI,CAACI,SAAS,CAACC,OAAO,CAAC,CAAC;YAC9BC,KAAK,EAAEN,IAAI,CAACO,MAAM,CAACD,KAAK;YACxBE,QAAQ,EAAER,IAAI,CAACO,MAAM,CAACE,IAAI;YAC1BlB,WAAW,EAAES,IAAI,CAACO,MAAM,CAAChB,WAAW;YACpCH,EAAE,EAAEY,IAAI,CAACU;UAAI;QAEjB,CAAC;QACDC,OAAO,EAAEA,CAACtB,SAAoB,EAAE;UAAEuB;QAAuB,CAAC,KAAK;UAC7D,MAAMC,SAAS,GAAGxB,SAA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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_toolboxString","data","require","_bitError","_lodash","_tagMap","_exceptions","Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","homepage","_getHomepage","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","aspects","serialize","getLogs","filter","allLogs","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","getDependencies","getPackageName","componentPackageName","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isDeleted","isRemoved","isOutdated","latestTag","byVersion","isNew","Promise","resolve","isExported","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","getTag","currentVersion","getSnapHash","hasVersion","getCurrentSnap","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.constants';\nimport { ComponentLog } from '@teambit/objects';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport { slice } from 'lodash';\nimport { ComponentFactory } from './component-factory';\nimport ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport { Config as 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 * if on main, returns the head on main.\n * if on a lane, returns the head on the lane.\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 homepage(): string | undefined {\n return this._state._consumer._getHomepage();\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?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n }): Promise<ComponentLog[]> {\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 getDependencies(): DependencyList {\n return this.factory.getDependencies(this);\n }\n\n getPackageName(): string {\n return this.factory.componentPackageName(this);\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 * whether a component is marked as deleted.\n * warning! if this component is not the head, it might be deleted by a range later on.\n * to get accurate results, please use teambit.component/remove aspect, \"isDeleted\" method.\n */\n isDeleted(): boolean {\n return this.state._consumer.isRemoved();\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 /**\n * whether the component exists on the remote.\n */\n isExported(): boolean {\n return this.factory.isExported(this.id);\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 * id.version can be either a tag or a hash.\n * if it's a hash, it may have a tag point to it. if it does, return the tag.\n */\n getTag(): Tag | undefined {\n const currentVersion = this.id.version;\n if (!currentVersion) return undefined;\n return this.tags.byVersion(currentVersion) || this.tags.byHash(currentVersion);\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a tag, find the hash it points to.\n */\n getSnapHash(): string | undefined {\n if (!this.id.hasVersion()) return undefined;\n const tag = this.tags.byVersion(this.id.version);\n if (tag) return tag.hash;\n return this.id.version;\n }\n\n /**\n * in case a component is new, it returns undefined.\n * otherwise, it returns the Snap object (hash/parents/log) of the current component (according to the version in the id)\n */\n async getCurrentSnap(): Promise<Snap | undefined> {\n const snap = this.getSnapHash();\n if (!snap) return undefined;\n return this.loadSnap(snap);\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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","ignoreList":[]}
1
+ {"version":3,"names":["_toolboxString","data","require","_bitError","_lodash","_tagMap","_exceptions","Component","constructor","id","head","_state","tags","TagMap","factory","mainFile","state","config","filesystem","buildStatus","_consumer","homepage","_getHomepage","headTag","undefined","byHash","hash","latest","getLatest","err","CouldNotFindLatest","get","aspects","serialize","getLogs","filter","allLogs","type","limit","offset","sort","typeFilter","snap","tag","filteredLogs","reverse","slice","getDependencies","getPackageName","componentPackageName","stringify","JSON","displayName","tokens","name","split","map","token","capitalize","join","version","isModified","isDeleted","isRemoved","isOutdated","latestTag","byVersion","isNew","Promise","resolve","isExported","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","getTag","currentVersion","getSnapHash","hasVersion","getCurrentSnap","checkout","write","path","fs","equals","component","toString","exports"],"sources":["component.ts"],"sourcesContent":["import type { AnyFS } from '@teambit/any-fs';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport type { SemVer } from 'semver';\nimport type { ComponentID } from '@teambit/component-id';\nimport { BitError } from '@teambit/bit-error';\nimport type { BuildStatus } from '@teambit/legacy.constants';\nimport type { ComponentLog } from '@teambit/objects';\nimport type { DependencyList } from '@teambit/dependency-resolver';\nimport { slice } from 'lodash';\nimport type { ComponentFactory } from './component-factory';\nimport type ComponentFS from './component-fs';\n// import { NothingToSnap } from './exceptions';\nimport type { Config as ComponentConfig } from './config';\n// eslint-disable-next-line import/no-cycle\nimport type { Snap } from './snap';\nimport type { State } from './state';\nimport { TagMap } from './tag-map';\nimport type { Tag } from './tag';\nimport { CouldNotFindLatest } from './exceptions';\nimport type { 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 * if on main, returns the head on main.\n * if on a lane, returns the head on the lane.\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 homepage(): string | undefined {\n return this._state._consumer._getHomepage();\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?: {\n type?: string;\n offset?: number;\n limit?: number;\n head?: string;\n sort?: string;\n }): Promise<ComponentLog[]> {\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 getDependencies(): DependencyList {\n return this.factory.getDependencies(this);\n }\n\n getPackageName(): string {\n return this.factory.componentPackageName(this);\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 * whether a component is marked as deleted.\n * warning! if this component is not the head, it might be deleted by a range later on.\n * to get accurate results, please use teambit.component/remove aspect, \"isDeleted\" method.\n */\n isDeleted(): boolean {\n return this.state._consumer.isRemoved();\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 /**\n * whether the component exists on the remote.\n */\n isExported(): boolean {\n return this.factory.isExported(this.id);\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 * id.version can be either a tag or a hash.\n * if it's a hash, it may have a tag point to it. if it does, return the tag.\n */\n getTag(): Tag | undefined {\n const currentVersion = this.id.version;\n if (!currentVersion) return undefined;\n return this.tags.byVersion(currentVersion) || this.tags.byHash(currentVersion);\n }\n\n /**\n * id.version can be either a tag or a hash.\n * if it's a tag, find the hash it points to.\n */\n getSnapHash(): string | undefined {\n if (!this.id.hasVersion()) return undefined;\n const tag = this.tags.byVersion(this.id.version);\n if (tag) return tag.hash;\n return this.id.version;\n }\n\n /**\n * in case a component is new, it returns undefined.\n * otherwise, it returns the Snap object (hash/parents/log) of the current component (according to the version in the id)\n */\n async getCurrentSnap(): Promise<Snap | undefined> {\n const snap = this.getSnapHash();\n if (!snap) return undefined;\n return this.loadSnap(snap);\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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","ignoreList":[]}