@teambit/component 1.0.281 → 1.0.283

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 (68) hide show
  1. package/artifacts/__bit_junit.xml +1 -1
  2. package/artifacts/preview/teambit_component_component-preview.js +1 -1
  3. package/artifacts/schema.json +782 -466
  4. package/dist/aspect.section.js +2 -2
  5. package/dist/aspect.section.js.map +1 -1
  6. package/dist/component-factory.d.ts +5 -1
  7. package/dist/component-factory.js.map +1 -1
  8. package/dist/component-fs.js +1 -1
  9. package/dist/component-fs.js.map +1 -1
  10. package/dist/component.composition.js +1 -1
  11. package/dist/component.composition.js.map +1 -1
  12. package/dist/component.d.ts +5 -0
  13. package/dist/component.graphql.js +2 -2
  14. package/dist/component.graphql.js.map +1 -1
  15. package/dist/component.js +10 -0
  16. package/dist/component.js.map +1 -1
  17. package/dist/component.main.runtime.d.ts +2 -1
  18. package/dist/component.main.runtime.js +12 -4
  19. package/dist/component.main.runtime.js.map +1 -1
  20. package/dist/component.route.js +1 -1
  21. package/dist/component.route.js.map +1 -1
  22. package/dist/component.ui.runtime.js +2 -2
  23. package/dist/component.ui.runtime.js.map +1 -1
  24. package/dist/dependencies/dependencies.js.map +1 -1
  25. package/dist/exceptions/could-not-find-latest.js.map +1 -1
  26. package/dist/exceptions/host-not-found.js.map +1 -1
  27. package/dist/exceptions/index.js +1 -1
  28. package/dist/exceptions/index.js.map +1 -1
  29. package/dist/exceptions/main-file-not-found.js.map +1 -1
  30. package/dist/host/use-component-host.js.map +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/{preview-1716434516635.js → preview-1716607230882.js} +2 -2
  34. package/dist/show/files.fragment.js +1 -1
  35. package/dist/show/id.fragment.js +1 -1
  36. package/dist/show/id.fragment.js.map +1 -1
  37. package/dist/show/main-file.fragment.js +1 -1
  38. package/dist/show/name.fragment.js +1 -1
  39. package/dist/show/scope.fragment.js +1 -1
  40. package/dist/show/show.cmd.d.ts +5 -2
  41. package/dist/show/show.cmd.js +31 -6
  42. package/dist/show/show.cmd.js.map +1 -1
  43. package/dist/ui/aspect-page/aspect-page.js +1 -1
  44. package/dist/ui/aspect-page/aspect-page.js.map +1 -1
  45. package/dist/ui/component-error/component-error.js +1 -1
  46. package/dist/ui/component-error/component-error.js.map +1 -1
  47. package/dist/ui/component-searcher/component-result.js +1 -1
  48. package/dist/ui/component-searcher/component-result.js.map +1 -1
  49. package/dist/ui/component-searcher/component-searcher.js +2 -2
  50. package/dist/ui/component-searcher/component-searcher.js.map +1 -1
  51. package/dist/ui/component.js +2 -2
  52. package/dist/ui/component.js.map +1 -1
  53. package/dist/ui/context/component-provider.js +1 -1
  54. package/dist/ui/context/component-provider.js.map +1 -1
  55. package/dist/ui/menu/menu-nav.js +3 -3
  56. package/dist/ui/menu/menu-nav.js.map +1 -1
  57. package/dist/ui/menu/menu.js +2 -2
  58. package/dist/ui/menu/menu.js.map +1 -1
  59. package/dist/ui/top-bar-nav/top-bar-nav.js +4 -4
  60. package/dist/ui/top-bar-nav/top-bar-nav.js.map +1 -1
  61. package/dist/ui/use-component-from-location.js.map +1 -1
  62. package/dist/ui/use-component-logs.js.map +1 -1
  63. package/dist/ui/use-component-query.js +1 -1
  64. package/dist/ui/use-component-query.js.map +1 -1
  65. package/dist/ui/use-component.fragments.js.map +1 -1
  66. package/dist/ui/use-component.js.map +1 -1
  67. package/package.json +20 -18
  68. package/show/show.cmd.ts +25 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_componentId","_componentDescriptor","_componentModel","_useComponent","_useComponentLogs","_componentError","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","useComponentQuery","componentId","host","filters","skip","idRef","useRef","current","variables","id","extensionId","error","loading","subscribeToMore","useDataQuery","GET_COMPONENT","errorPolicy","loadingLogs","componentLogs","logs","useComponentLogs","rawComponent","getHost","get","useEffect","unsubAddition","document","SUB_SUBSCRIPTION_ADDED","updateQuery","prev","subscriptionData","prevComponent","addedComponent","componentAdded","component","name","unsubChanges","SUB_COMPONENT_CHANGED","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","SUB_COMPONENT_REMOVED","removedIds","componentRemoved","componentIds","isRemoved","some","removedId","idDepKey","scope","version","undefined","useMemo","fromObject","componentError","ComponentError","message","ComponentModel","from","toString","componentDescriptor","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","ComponentDescriptor"],"sources":["use-component-query.ts"],"sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentQueryResult, Filters } from './use-component.model';\nimport {\n GET_COMPONENT,\n SUB_COMPONENT_CHANGED,\n SUB_COMPONENT_REMOVED,\n SUB_SUBSCRIPTION_ADDED,\n} from './use-component.fragments';\nimport { useComponentLogs } from './use-component-logs';\nimport { ComponentError } from './component-error';\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(\n componentId: string,\n host: string,\n filters?: Filters,\n skip?: boolean\n): ComponentQueryResult {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const variables = {\n id: componentId,\n extensionId: host,\n };\n\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables,\n skip,\n errorPolicy: 'all',\n });\n\n const { loading: loadingLogs, componentLogs: { logs } = {} } = useComponentLogs(componentId, host, filters, skip);\n\n const rawComponent = data?.getHost?.get;\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const idDepKey = rawComponent?.id\n ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}`\n : undefined;\n\n const id: ComponentID | undefined = useMemo(\n () => (rawComponent ? ComponentID.fromObject(rawComponent.id) : undefined),\n [idDepKey]\n );\n\n const componentError =\n error && !data\n ? new ComponentError(500, error.message)\n : (!rawComponent && !loading && new ComponentError(404)) || undefined;\n\n const component = useMemo(\n () => (rawComponent ? ComponentModel.from({ ...rawComponent, host, logs }) : undefined),\n [id?.toString(), logs]\n );\n\n const componentDescriptor = useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data,\n };\n }),\n };\n\n return id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined;\n }, [id?.toString()]);\n\n return useMemo(() => {\n return {\n componentDescriptor,\n component,\n componentLogs: {\n loading: loadingLogs,\n logs,\n },\n error: componentError || undefined,\n loading,\n };\n }, [host, component, componentDescriptor, componentError]);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","require","_uiFoundationUiHooks","_componentId","_componentDescriptor","_componentModel","_useComponent","_useComponentLogs","_componentError","ownKeys","e","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","useComponentQuery","componentId","host","filters","skip","idRef","useRef","current","variables","id","extensionId","error","loading","subscribeToMore","useDataQuery","GET_COMPONENT","errorPolicy","loadingLogs","componentLogs","logs","useComponentLogs","rawComponent","getHost","get","useEffect","unsubAddition","document","SUB_SUBSCRIPTION_ADDED","updateQuery","prev","subscriptionData","prevComponent","addedComponent","componentAdded","component","name","unsubChanges","SUB_COMPONENT_CHANGED","updatedComponent","componentChanged","isUpdated","ComponentID","isEqualObj","unsubRemoval","SUB_COMPONENT_REMOVED","removedIds","componentRemoved","componentIds","isRemoved","some","removedId","idDepKey","scope","version","undefined","useMemo","fromObject","componentError","ComponentError","message","ComponentModel","from","toString","componentDescriptor","aspectList","entries","aspects","map","aspectObject","aspectId","aspectData","ComponentDescriptor"],"sources":["use-component-query.ts"],"sourcesContent":["import { useMemo, useEffect, useRef } from 'react';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\nimport { ComponentDescriptor } from '@teambit/component-descriptor';\nimport { ComponentModel } from './component-model';\nimport { ComponentQueryResult, Filters } from './use-component.model';\nimport {\n GET_COMPONENT,\n SUB_COMPONENT_CHANGED,\n SUB_COMPONENT_REMOVED,\n SUB_SUBSCRIPTION_ADDED,\n} from './use-component.fragments';\nimport { useComponentLogs } from './use-component-logs';\nimport { ComponentError } from './component-error';\n\n/** provides data to component ui page, making sure both variables and return value are safely typed and memoized */\nexport function useComponentQuery(\n componentId: string,\n host: string,\n filters?: Filters,\n skip?: boolean\n): ComponentQueryResult {\n const idRef = useRef(componentId);\n idRef.current = componentId;\n const variables = {\n id: componentId,\n extensionId: host,\n };\n\n const { data, error, loading, subscribeToMore } = useDataQuery(GET_COMPONENT, {\n variables,\n skip,\n errorPolicy: 'all',\n });\n\n const { loading: loadingLogs, componentLogs: { logs } = {} } = useComponentLogs(componentId, host, filters, skip);\n\n const rawComponent = data?.getHost?.get;\n\n useEffect(() => {\n // @TODO @Kutner fix subscription for scope\n if (host !== 'teambit.workspace/workspace') {\n return () => {};\n }\n\n const unsubAddition = subscribeToMore({\n document: SUB_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const prevComponent = prev?.getHost?.get;\n const addedComponent = subscriptionData?.data?.componentAdded?.component;\n\n if (!addedComponent || prevComponent) return prev;\n\n if (idRef.current === addedComponent.id.name) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: addedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubChanges = subscribeToMore({\n document: SUB_COMPONENT_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const updatedComponent = subscriptionData?.data?.componentChanged?.component;\n\n const isUpdated = updatedComponent && ComponentID.isEqualObj(prevComponent?.id, updatedComponent?.id);\n\n if (isUpdated) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: updatedComponent,\n },\n };\n }\n\n return prev;\n },\n });\n\n const unsubRemoval = subscribeToMore({\n document: SUB_COMPONENT_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n if (!subscriptionData.data) return prev;\n\n const prevComponent = prev?.getHost?.get;\n const removedIds: ComponentIdObj[] | undefined = subscriptionData?.data?.componentRemoved?.componentIds;\n if (!prevComponent || !removedIds?.length) return prev;\n\n const isRemoved = removedIds.some((removedId) => ComponentID.isEqualObj(removedId, prevComponent.id));\n\n if (isRemoved) {\n return {\n ...prev,\n getHost: {\n ...prev.getHost,\n get: null,\n },\n };\n }\n\n return prev;\n },\n });\n\n return () => {\n unsubChanges();\n unsubAddition();\n unsubRemoval();\n };\n }, []);\n\n const idDepKey = rawComponent?.id\n ? `${rawComponent?.id?.scope}/${rawComponent?.id?.name}@${rawComponent?.id?.version}}`\n : undefined;\n\n const id: ComponentID | undefined = useMemo(\n () => (rawComponent ? ComponentID.fromObject(rawComponent.id) : undefined),\n [idDepKey]\n );\n\n const componentError =\n error && !data\n ? new ComponentError(500, error.message)\n : (!rawComponent && !loading && new ComponentError(404)) || undefined;\n\n const component = useMemo(\n () => (rawComponent ? ComponentModel.from({ ...rawComponent, host, logs }) : undefined),\n [id?.toString(), logs]\n );\n\n const componentDescriptor = useMemo(() => {\n const aspectList = {\n entries: rawComponent?.aspects.map((aspectObject) => {\n return {\n ...aspectObject,\n aspectId: aspectObject.id,\n aspectData: aspectObject.data,\n };\n }),\n };\n\n return id ? ComponentDescriptor.fromObject({ id: id.toString(), aspectList }) : undefined;\n }, [id?.toString()]);\n\n return useMemo(() => {\n return {\n componentDescriptor,\n component,\n componentLogs: {\n loading: loadingLogs,\n logs,\n },\n error: componentError || undefined,\n loading,\n };\n }, [host, component, componentDescriptor, componentError]);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_client","data","require","componentIdFields","exports","gql","componentOverviewFields","componentFields","componentFieldsWithLogs","COMPONENT_QUERY_LOG_FIELDS","GET_COMPONENT","GET_COMPONENT_WITH_LOGS","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED"],"sources":["use-component.fragments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n description\n deprecation {\n isDeprecate\n newId\n }\n labels\n displayName\n server {\n env\n url\n host\n basePath\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n onlyOverview\n useNameParam\n }\n compositions {\n identifier\n displayName\n filepath\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n }\n ${componentOverviewFields}\n`;\n\nexport const componentFieldsWithLogs = gql`\n fragment componentFieldWithLogs on Component {\n id {\n ...componentIdFields\n }\n packageName\n latest\n logs(\n type: $logType\n offset: $logOffset\n limit: $logLimit\n sort: $logSort\n head: $logHead\n takeHeadFromComponent: $logTakeHeadFromComponent\n ) {\n id\n message\n username\n email\n date\n hash\n tag\n displayName\n }\n }\n ${componentIdFields}\n`;\n\nexport const COMPONENT_QUERY_LOG_FIELDS = `\n $logOffset: Int\n $logLimit: Int\n $logType: String\n $logHead: String\n $logSort: String\n $logTakeHeadFromComponent: Boolean\n`;\n\nexport const GET_COMPONENT = gql`\n query Component($extensionId: String!, $id: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const GET_COMPONENT_WITH_LOGS = gql`\n query Component(\n $extensionId: String!\n $id: String!\n ${COMPONENT_QUERY_LOG_FIELDS}\n ) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFieldWithLogs\n }\n }\n }\n ${componentFieldsWithLogs}\n`;\n\nexport const SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,aAAG,CAAC;AACrC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,IAAAD,aAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAkB;AACtB,CAAC;AAEM,MAAMI,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,IAAAF,aAAG,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,uBAAwB;AAC5B,CAAC;AAEM,MAAME,uBAAuB,GAAAJ,OAAA,CAAAI,uBAAA,GAAG,IAAAH,aAAG,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAkB;AACtB,CAAC;AAEM,MAAMM,0BAA0B,GAAAL,OAAA,CAAAK,0BAAA,GAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG,IAAAL,aAAG,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CAAC;AAEM,MAAMI,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,GAAG,IAAAN,aAAG,CAAC;AAC3C;AACA;AACA;AACA,MAAMI,0BAA2B;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,uBAAwB;AAC5B,CAAC;AAEM,MAAMI,sBAAsB,GAAAR,OAAA,CAAAQ,sBAAA,GAAG,IAAAP,aAAG,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CAAC;AAEM,MAAMM,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,IAAAR,aAAG,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAgB;AACpB,CAAC;AAEM,MAAMO,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,aAAG,CAAC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAkB;AACtB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_client","data","require","componentIdFields","exports","gql","componentOverviewFields","componentFields","componentFieldsWithLogs","COMPONENT_QUERY_LOG_FIELDS","GET_COMPONENT","GET_COMPONENT_WITH_LOGS","SUB_SUBSCRIPTION_ADDED","SUB_COMPONENT_CHANGED","SUB_COMPONENT_REMOVED"],"sources":["use-component.fragments.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const componentIdFields = gql`\n fragment componentIdFields on ComponentID {\n name\n version\n scope\n }\n`;\n\nexport const componentOverviewFields = gql`\n fragment componentOverviewFields on Component {\n id {\n ...componentIdFields\n }\n aspects(include: [\"teambit.preview/preview\", \"teambit.envs/envs\"]) {\n # 'id' property in gql refers to a *global* identifier and used for caching.\n # this makes aspect data cache under the same key, even when they are under different components.\n # renaming the property fixes that.\n id\n data\n }\n description\n deprecation {\n isDeprecate\n newId\n }\n labels\n displayName\n server {\n env\n url\n host\n basePath\n }\n buildStatus\n env {\n id\n icon\n }\n size {\n compressedTotal\n }\n preview {\n includesEnvTemplate\n legacyHeader\n isScaling\n skipIncludes\n onlyOverview\n useNameParam\n }\n compositions {\n identifier\n displayName\n filepath\n }\n }\n ${componentIdFields}\n`;\n\nexport const componentFields = gql`\n fragment componentFields on Component {\n ...componentOverviewFields\n packageName\n latest\n compositions {\n identifier\n displayName\n }\n tags {\n version\n }\n }\n ${componentOverviewFields}\n`;\n\nexport const componentFieldsWithLogs = gql`\n fragment componentFieldWithLogs on Component {\n id {\n ...componentIdFields\n }\n packageName\n latest\n logs(\n type: $logType\n offset: $logOffset\n limit: $logLimit\n sort: $logSort\n head: $logHead\n takeHeadFromComponent: $logTakeHeadFromComponent\n ) {\n id\n message\n username\n email\n date\n hash\n tag\n displayName\n }\n }\n ${componentIdFields}\n`;\n\nexport const COMPONENT_QUERY_LOG_FIELDS = `\n $logOffset: Int\n $logLimit: Int\n $logType: String\n $logHead: String\n $logSort: String\n $logTakeHeadFromComponent: Boolean\n`;\n\nexport const GET_COMPONENT = gql`\n query Component($extensionId: String!, $id: String!) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const GET_COMPONENT_WITH_LOGS = gql`\n query Component(\n $extensionId: String!\n $id: String!\n ${COMPONENT_QUERY_LOG_FIELDS}\n ) {\n getHost(id: $extensionId) {\n id # used for GQL caching\n get(id: $id) {\n ...componentFieldWithLogs\n }\n }\n }\n ${componentFieldsWithLogs}\n`;\n\nexport const SUB_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...componentFields\n }\n }\n }\n ${componentFields}\n`;\n\nexport const SUB_COMPONENT_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n ...componentIdFields\n }\n }\n }\n ${componentIdFields}\n`;\n"],"mappings":";;;;;;AAAA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAAE,aAAG;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,uBAAuB,GAAAF,OAAA,CAAAE,uBAAA,GAAG,IAAAD,aAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMI,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,IAAAF,aAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,uBAAuB;AAC3B,CAAC;AAEM,MAAME,uBAAuB,GAAAJ,OAAA,CAAAI,uBAAA,GAAG,IAAAH,aAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC;AAEM,MAAMM,0BAA0B,GAAAL,OAAA,CAAAK,0BAAA,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEM,MAAMC,aAAa,GAAAN,OAAA,CAAAM,aAAA,GAAG,IAAAL,aAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMI,uBAAuB,GAAAP,OAAA,CAAAO,uBAAA,GAAG,IAAAN,aAAG;AAC1C;AACA;AACA;AACA,MAAMI,0BAA0B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAID,uBAAuB;AAC3B,CAAC;AAEM,MAAMI,sBAAsB,GAAAR,OAAA,CAAAQ,sBAAA,GAAG,IAAAP,aAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMM,qBAAqB,GAAAT,OAAA,CAAAS,qBAAA,GAAG,IAAAR,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIE,eAAe;AACnB,CAAC;AAEM,MAAMO,qBAAqB,GAAAV,OAAA,CAAAU,qBAAA,GAAG,IAAAT,aAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIF,iBAAiB;AACrB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_uiFoundationUiReactRouter","data","require","_useComponentQuery","_useComponent","useComponent","host","id","options","query","useQuery","version","logFilters","customUseComponent","skip","componentVersion","get","undefined","componentIdStr","withVersion","targetUseComponent","useComponentQuery","includes"],"sources":["use-component.tsx"],"sourcesContent":["import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { useComponentQuery } from './use-component-query';\nimport { ComponentQueryResult, UseComponentOptions, UseComponentType, Filters } from './use-component.model';\n\nexport { UseComponentType, Filters };\n\nexport function useComponent(host: string, id?: string, options?: UseComponentOptions): ComponentQueryResult {\n const query = useQuery();\n const { version, logFilters, customUseComponent, skip } = options || {};\n const componentVersion = (version || query.get('version')) ?? undefined;\n\n const componentIdStr = id && withVersion(id, componentVersion);\n const targetUseComponent = customUseComponent || useComponentQuery;\n\n return targetUseComponent(componentIdStr || '', host, logFilters, skip || !id);\n}\n\nfunction withVersion(id: string, version?: string) {\n if (!version) return id;\n if (id.includes('@')) return id;\n return `${id}@${version}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAAA,2BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,0BAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIO,SAASI,YAAYA,CAACC,IAAY,EAAEC,EAAW,EAAEC,OAA6B,EAAwB;EAC3G,MAAMC,KAAK,GAAG,IAAAC,qCAAQ,EAAC,CAAC;EACxB,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC,kBAAkB;IAAEC;EAAK,CAAC,GAAGN,OAAO,IAAI,CAAC,CAAC;EACvE,MAAMO,gBAAgB,GAAG,CAACJ,OAAO,IAAIF,KAAK,CAACO,GAAG,CAAC,SAAS,CAAC,KAAKC,SAAS;EAEvE,MAAMC,cAAc,GAAGX,EAAE,IAAIY,WAAW,CAACZ,EAAE,EAAEQ,gBAAgB,CAAC;EAC9D,MAAMK,kBAAkB,GAAGP,kBAAkB,IAAIQ,sCAAiB;EAElE,OAAOD,kBAAkB,CAACF,cAAc,IAAI,EAAE,EAAEZ,IAAI,EAAEM,UAAU,EAAEE,IAAI,IAAI,CAACP,EAAE,CAAC;AAChF;AAEA,SAASY,WAAWA,CAACZ,EAAU,EAAEI,OAAgB,EAAE;EACjD,IAAI,CAACA,OAAO,EAAE,OAAOJ,EAAE;EACvB,IAAIA,EAAE,CAACe,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAOf,EAAE;EAC/B,OAAQ,GAAEA,EAAG,IAAGI,OAAQ,EAAC;AAC3B","ignoreList":[]}
1
+ {"version":3,"names":["_uiFoundationUiReactRouter","data","require","_useComponentQuery","_useComponent","useComponent","host","id","options","query","useQuery","version","logFilters","customUseComponent","skip","componentVersion","get","undefined","componentIdStr","withVersion","targetUseComponent","useComponentQuery","includes"],"sources":["use-component.tsx"],"sourcesContent":["import { useQuery } from '@teambit/ui-foundation.ui.react-router.use-query';\nimport { useComponentQuery } from './use-component-query';\nimport { ComponentQueryResult, UseComponentOptions, UseComponentType, Filters } from './use-component.model';\n\nexport { UseComponentType, Filters };\n\nexport function useComponent(host: string, id?: string, options?: UseComponentOptions): ComponentQueryResult {\n const query = useQuery();\n const { version, logFilters, customUseComponent, skip } = options || {};\n const componentVersion = (version || query.get('version')) ?? undefined;\n\n const componentIdStr = id && withVersion(id, componentVersion);\n const targetUseComponent = customUseComponent || useComponentQuery;\n\n return targetUseComponent(componentIdStr || '', host, logFilters, skip || !id);\n}\n\nfunction withVersion(id: string, version?: string) {\n if (!version) return id;\n if (id.includes('@')) return id;\n return `${id}@${version}`;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAAA,2BAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,0BAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,mBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,kBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,cAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,aAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIO,SAASI,YAAYA,CAACC,IAAY,EAAEC,EAAW,EAAEC,OAA6B,EAAwB;EAC3G,MAAMC,KAAK,GAAG,IAAAC,qCAAQ,EAAC,CAAC;EACxB,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC,kBAAkB;IAAEC;EAAK,CAAC,GAAGN,OAAO,IAAI,CAAC,CAAC;EACvE,MAAMO,gBAAgB,GAAG,CAACJ,OAAO,IAAIF,KAAK,CAACO,GAAG,CAAC,SAAS,CAAC,KAAKC,SAAS;EAEvE,MAAMC,cAAc,GAAGX,EAAE,IAAIY,WAAW,CAACZ,EAAE,EAAEQ,gBAAgB,CAAC;EAC9D,MAAMK,kBAAkB,GAAGP,kBAAkB,IAAIQ,sCAAiB;EAElE,OAAOD,kBAAkB,CAACF,cAAc,IAAI,EAAE,EAAEZ,IAAI,EAAEM,UAAU,EAAEE,IAAI,IAAI,CAACP,EAAE,CAAC;AAChF;AAEA,SAASY,WAAWA,CAACZ,EAAU,EAAEI,OAAgB,EAAE;EACjD,IAAI,CAACA,OAAO,EAAE,OAAOJ,EAAE;EACvB,IAAIA,EAAE,CAACe,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAOf,EAAE;EAC/B,OAAO,GAAGA,EAAE,IAAII,OAAO,EAAE;AAC3B","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/component",
3
- "version": "1.0.281",
3
+ "version": "1.0.283",
4
4
  "homepage": "https://bit.cloud/teambit/component/component",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.component",
8
8
  "name": "component",
9
- "version": "1.0.281"
9
+ "version": "1.0.283"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/any-fs": "0.0.5",
@@ -17,6 +17,7 @@
17
17
  "semver": "7.5.2",
18
18
  "copy-to-clipboard": "3.3.1",
19
19
  "lodash.flatten": "4.4.0",
20
+ "open": "7.4.2",
20
21
  "classnames": "2.2.6",
21
22
  "lodash.compact": "3.0.1",
22
23
  "@teambit/component-id": "1.2.0",
@@ -36,38 +37,39 @@
36
37
  "@teambit/documenter.ui.separator": "4.1.1",
37
38
  "@teambit/design.ui.pages.not-found": "0.0.371",
38
39
  "@teambit/design.ui.pages.server-error": "0.0.368",
40
+ "@teambit/design.ui.styles.ellipsis": "0.0.357",
41
+ "@teambit/explorer.ui.command-bar": "2.0.14",
39
42
  "@teambit/design.navigation.responsive-navbar": "0.0.7",
40
43
  "@teambit/base-ui.layout.breakpoints": "1.0.0",
41
44
  "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.142",
42
- "@teambit/design.ui.styles.ellipsis": "0.0.357",
43
- "@teambit/explorer.ui.command-bar": "2.0.14",
44
- "@teambit/aspect-loader": "1.0.281",
45
- "@teambit/dependency-resolver": "1.0.281",
46
- "@teambit/graph": "1.0.281",
45
+ "@teambit/aspect-loader": "1.0.283",
46
+ "@teambit/dependency-resolver": "1.0.283",
47
+ "@teambit/graph": "1.0.283",
47
48
  "@teambit/toolbox.path.match-patterns": "0.0.15",
48
49
  "@teambit/toolbox.string.capitalize": "0.0.496",
49
50
  "@teambit/cli": "0.0.865",
50
51
  "@teambit/express": "0.0.964",
51
- "@teambit/graphql": "1.0.281",
52
- "@teambit/command-bar": "1.0.281",
52
+ "@teambit/graphql": "1.0.283",
53
+ "@teambit/logger": "0.0.958",
54
+ "@teambit/command-bar": "1.0.283",
53
55
  "@teambit/component-package-version": "0.0.433",
54
- "@teambit/preview": "1.0.281",
55
- "@teambit/pubsub": "1.0.281",
56
- "@teambit/react-router": "1.0.281",
56
+ "@teambit/preview": "1.0.283",
57
+ "@teambit/pubsub": "1.0.283",
58
+ "@teambit/react-router": "1.0.283",
57
59
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.509",
58
- "@teambit/ui": "1.0.281",
60
+ "@teambit/ui": "1.0.283",
59
61
  "@teambit/component-issues": "0.0.149",
60
62
  "@teambit/cli-table": "0.0.48",
61
63
  "@teambit/legacy-component-log": "0.0.403",
62
64
  "@teambit/component-descriptor": "0.0.419",
63
65
  "@teambit/harmony.ui.aspect-box": "0.0.507",
64
- "@teambit/compositions": "1.0.281",
65
- "@teambit/deprecation": "1.0.281",
66
- "@teambit/envs": "1.0.281",
66
+ "@teambit/compositions": "1.0.283",
67
+ "@teambit/deprecation": "1.0.283",
68
+ "@teambit/envs": "1.0.283",
69
+ "@teambit/envs.ui.env-icon": "0.0.505",
67
70
  "@teambit/component.ui.version-dropdown": "0.0.862",
68
71
  "@teambit/lanes.hooks.use-lanes": "0.0.264",
69
- "@teambit/lanes.ui.models.lanes-model": "0.0.216",
70
- "@teambit/envs.ui.env-icon": "0.0.505"
72
+ "@teambit/lanes.ui.models.lanes-model": "0.0.216"
71
73
  },
72
74
  "devDependencies": {
73
75
  "@types/lodash": "4.14.165",
package/show/show.cmd.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import open from 'open';
1
2
  import { Command, CommandOptions } from '@teambit/cli';
2
3
  import { compact } from 'lodash';
3
4
  // import { Logger } from '@teambit/logger';
@@ -6,6 +7,7 @@ import { CLITable } from '@teambit/cli-table';
6
7
  import { MissingBitMapComponent } from '@teambit/legacy/dist/consumer/bit-map/exceptions';
7
8
  import { ComponentID } from '@teambit/component-id';
8
9
  import LegacyShow from '@teambit/legacy/dist/cli/commands/public-cmds/show-cmd';
10
+ import { Logger } from '@teambit/logger';
9
11
  import { ComponentMain } from '../component.main.runtime';
10
12
 
11
13
  export class ShowCmd implements Command {
@@ -18,6 +20,7 @@ export class ShowCmd implements Command {
18
20
  ['j', 'json', 'return the component data in json format'],
19
21
  ['l', 'legacy', 'use the legacy bit show.'],
20
22
  ['r', 'remote', 'show data for a remote component'],
23
+ ['b', 'browser', 'open the component page in the browser'],
21
24
  [
22
25
  'c',
23
26
  'compare',
@@ -25,7 +28,7 @@ export class ShowCmd implements Command {
25
28
  ],
26
29
  ] as CommandOptions;
27
30
 
28
- constructor(private component: ComponentMain) {}
31
+ constructor(private component: ComponentMain, private logger: Logger) {}
29
32
 
30
33
  private async getComponent(idStr: string, remote: boolean) {
31
34
  if (remote) {
@@ -59,7 +62,10 @@ to see the legacy bit show, please use "--legacy" flag`);
59
62
  return legacyShow.report(showData);
60
63
  }
61
64
 
62
- async report([idStr]: [string], { legacy, remote, compare }: { legacy: boolean; remote: boolean; compare: boolean }) {
65
+ async report(
66
+ [idStr]: [string],
67
+ { legacy, remote, compare, browser }: { legacy: boolean; remote: boolean; compare: boolean; browser: boolean }
68
+ ) {
63
69
  if (legacy) return this.useLegacy(idStr, false, remote, compare);
64
70
  const component = await this.getComponent(idStr, remote);
65
71
  const fragments = this.component.getShowFragments();
@@ -72,7 +78,23 @@ to see the legacy bit show, please use "--legacy" flag`);
72
78
  );
73
79
 
74
80
  const table = new CLITable([], compact(rows));
75
- return table.render();
81
+ const renderedTable = table.render();
82
+ if (browser) {
83
+ const isExported = component.isExported();
84
+ if (!isExported) {
85
+ this.logger.consoleWarning(`unable to open the browser, the component "${idStr}" has not been exported yet`);
86
+ return renderedTable;
87
+ }
88
+ const homepageUrl = component.homepage;
89
+ if (!homepageUrl || homepageUrl === '') {
90
+ this.logger.consoleWarning(`unable to open browser, the component ${idStr} does not have a homepage`);
91
+ return renderedTable;
92
+ }
93
+ open(homepageUrl).catch((err) => {
94
+ this.logger.error(`failed to open browser for component ${idStr}, err: ${err}`);
95
+ });
96
+ }
97
+ return renderedTable;
76
98
  }
77
99
 
78
100
  async json([idStr]: [string], { remote, legacy }: { remote: boolean; legacy: boolean }) {