@teambit/workspace 1.0.107 → 1.0.108

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 (85) hide show
  1. package/aspects-merger.ts +319 -0
  2. package/bit-map.ts +277 -0
  3. package/build-graph-from-fs.ts +188 -0
  4. package/build-graph-ids-from-fs.ts +216 -0
  5. package/capsule.cmd.ts +217 -0
  6. package/constants.ts +1 -0
  7. package/dist/aspects-merger.js +13 -22
  8. package/dist/aspects-merger.js.map +1 -1
  9. package/dist/bit-map.d.ts +1 -1
  10. package/dist/build-graph-from-fs.d.ts +2 -2
  11. package/dist/build-graph-from-fs.js +1 -2
  12. package/dist/build-graph-from-fs.js.map +1 -1
  13. package/dist/build-graph-ids-from-fs.js +1 -1
  14. package/dist/build-graph-ids-from-fs.js.map +1 -1
  15. package/dist/capsule.cmd.d.ts +2 -2
  16. package/dist/capsule.cmd.js +1 -2
  17. package/dist/capsule.cmd.js.map +1 -1
  18. package/dist/component-config-file/component-config-file.d.ts +2 -2
  19. package/dist/component-tree.widget.d.ts +2 -2
  20. package/dist/eject-conf.cmd.d.ts +2 -2
  21. package/dist/envs-subcommands/envs-replace.cmd.d.ts +1 -1
  22. package/dist/envs-subcommands/envs-set.cmd.d.ts +1 -1
  23. package/dist/envs-subcommands/envs-unset.cmd.d.ts +1 -1
  24. package/dist/envs-subcommands/envs-update.cmd.d.ts +1 -1
  25. package/dist/filter.d.ts +1 -1
  26. package/dist/filter.js +1 -1
  27. package/dist/filter.js.map +1 -1
  28. package/dist/merge-conflict-file.d.ts +1 -1
  29. package/dist/merge-conflict-file.js +1 -2
  30. package/dist/merge-conflict-file.js.map +1 -1
  31. package/dist/on-component-events.d.ts +6 -6
  32. package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
  33. package/dist/scope-subcommands/scope-set.cmd.d.ts +1 -1
  34. package/dist/ui/workspace/use-workspace.d.ts +8 -8
  35. package/dist/ui/workspace/use-workspace.js +7 -18
  36. package/dist/ui/workspace/use-workspace.js.map +1 -1
  37. package/dist/ui/workspace/workspace-model.d.ts +3 -3
  38. package/dist/ui/workspace/workspace-overview/workspace-overview.d.ts +2 -2
  39. package/dist/ui/workspace/workspace-overview/workspace-overview.js +1 -2
  40. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  41. package/dist/ui/workspace/workspace-provider.d.ts +3 -3
  42. package/dist/ui/workspace/workspace.d.ts +3 -3
  43. package/dist/workspace-aspects-loader.d.ts +3 -3
  44. package/dist/workspace-aspects-loader.js +7 -11
  45. package/dist/workspace-aspects-loader.js.map +1 -1
  46. package/dist/workspace-component/comp-files.d.ts +3 -3
  47. package/dist/workspace-component/component-status.d.ts +3 -3
  48. package/dist/workspace-component/workspace-component-loader.d.ts +5 -5
  49. package/dist/workspace-component/workspace-component-loader.js +11 -12
  50. package/dist/workspace-component/workspace-component-loader.js.map +1 -1
  51. package/dist/workspace.composition.d.ts +2 -2
  52. package/dist/workspace.d.ts +6 -6
  53. package/dist/workspace.graphql.d.ts +2 -2
  54. package/dist/workspace.graphql.js +2 -4
  55. package/dist/workspace.graphql.js.map +1 -1
  56. package/dist/workspace.js +16 -23
  57. package/dist/workspace.js.map +1 -1
  58. package/dist/workspace.provider.d.ts +12 -12
  59. package/dist/workspace.provider.js +8 -11
  60. package/dist/workspace.provider.js.map +1 -1
  61. package/dist/workspace.ui.drawer.d.ts +1 -1
  62. package/dist/workspace.ui.drawer.js +5 -6
  63. package/dist/workspace.ui.drawer.js.map +1 -1
  64. package/dist/workspace.ui.runtime.d.ts +1 -1
  65. package/dist/workspace.ui.runtime.js +2 -8
  66. package/dist/workspace.ui.runtime.js.map +1 -1
  67. package/eject-conf.cmd.ts +57 -0
  68. package/filter.ts +139 -0
  69. package/index.ts +22 -0
  70. package/merge-conflict-file.ts +129 -0
  71. package/on-component-events.ts +24 -0
  72. package/package.json +39 -46
  73. package/pattern.cmd.ts +53 -0
  74. package/tsconfig.json +16 -21
  75. package/types/asset.d.ts +15 -3
  76. package/types.ts +71 -0
  77. package/use.cmd.ts +25 -0
  78. package/workspace-aspects-loader.ts +885 -0
  79. package/workspace-section.ts +14 -0
  80. package/workspace.aspect.ts +9 -0
  81. package/workspace.graphql.ts +133 -0
  82. package/workspace.main.runtime.ts +56 -0
  83. package/workspace.provider.ts +282 -0
  84. package/workspace.ts +2014 -0
  85. package/workspace.ui-root.ts +65 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","CapsuleCreateCmd","constructor","workspace","scope","isolator","create","componentIds","baseDir","rootBaseDir","alwaysNew","id","installPackages","seedersOnly","useHash","Array","isArray","finalUseHash","undefined","_this$workspace","shouldUseHashForCapsules","baseInstallOptions","additionalInstallOptions","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","installOptions","capsuleOptions","includeFromNestedHosts","name","host","ids","resolveMultipleComponentIds","network","isolateComponents","capsules","graphCapsules","report","opts","capsuleOutput","map","capsule","chalk","bold","component","toString","path","join","title","green","json","c","exports","CapsuleListCmd","workspaceCapsulesRootDir","scopeAspectsCapsulesRootDir","getCapsulesRootDirs","listWs","list","listScope","hostPath","numOfWsCapsules","hostType","cyan","wsLine","scopeLine","suggestLine","lines","x","rootDirs","scopeCapsules","CapsuleDeleteCmd","args","all","scopeAspects","capsuleBaseDirToDelete","capsuleBaseDir","deletedDir","deleteCapsules","CapsuleCmd","getCapsulesRootDir","getCapsulePath","getAspectCapsulePath"],"sources":["capsule.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { CapsuleList, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport type { ScopeMain } from '@teambit/scope';\nimport chalk from 'chalk';\n\nimport { Workspace } from '.';\n\ntype CreateOpts = {\n baseDir?: string;\n rootBaseDir?: string;\n alwaysNew?: boolean;\n seedersOnly?: boolean;\n useHash?: boolean;\n id: string;\n installPackages?: boolean;\n};\n\nexport class CapsuleCreateCmd implements Command {\n name = 'create [component-id...]';\n description = `create capsules for components`;\n helpUrl = 'reference/build-pipeline/capsule';\n group = 'capsules';\n alias = '';\n options = [\n [\n 'b',\n 'base-dir <name>',\n 'set base dir of all capsules (hashed to create the base dir inside the root dir - host path by default)',\n ],\n ['r', 'root-base-dir <name>', 'set root base dir of all capsules (absolute path to use as root dir)'],\n ['a', 'always-new', 'create new environment for capsule'],\n ['s', 'seeders-only', 'create capsules for the seeders only (not for the entire graph)'],\n ['i', 'id <name>', 'reuse capsule of certain name'],\n ['', 'use-hash', 'whether to use hash function (of base dir) as capsules root dir name'],\n ['j', 'json', 'json format'],\n ['d', 'install-packages', 'install packages by the package-manager'],\n ['p', 'package-manager <name>', 'npm, yarn or pnpm, default to npm'],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace | undefined, private scope: ScopeMain, private isolator: IsolatorMain) {}\n\n async create(\n [componentIds = []]: [string[]],\n { baseDir, rootBaseDir, alwaysNew = false, id, installPackages = false, seedersOnly = false, useHash }: CreateOpts\n ): Promise<CapsuleList> {\n // @todo: why it is not an array?\n if (componentIds && !Array.isArray(componentIds)) componentIds = [componentIds];\n let finalUseHash = useHash;\n if (useHash === undefined) {\n if (baseDir) {\n finalUseHash = false;\n } else {\n finalUseHash = this.workspace\n ? this.workspace?.shouldUseHashForCapsules()\n : this.scope.shouldUseHashForCapsules();\n }\n }\n\n const baseInstallOptions = { installPackages };\n const additionalInstallOptions = this.workspace\n ? {}\n : {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n };\n const installOptions = { ...baseInstallOptions, ...additionalInstallOptions };\n\n const capsuleOptions: IsolateComponentsOptions = {\n baseDir,\n rootBaseDir,\n installOptions,\n alwaysNew,\n seedersOnly,\n includeFromNestedHosts: true,\n name: id,\n useHash: finalUseHash,\n };\n const host = this.workspace || this.scope;\n const ids = await host.resolveMultipleComponentIds(componentIds);\n const network = await this.isolator.isolateComponents(ids, capsuleOptions);\n const capsules = network.graphCapsules;\n return capsules;\n }\n\n async report([componentIds]: [string[]], opts: CreateOpts) {\n // @ts-ignore\n const capsules = await this.create(componentIds, opts);\n const capsuleOutput = capsules\n .map((capsule) => `${chalk.bold(capsule.component.id.toString())} - ${capsule.path}`)\n .join('\\n');\n const title = `${capsules.length} capsule(s) were created successfully`;\n return `${chalk.green(title)}\\n${capsuleOutput}`;\n }\n\n async json([componentIds]: [string[]], opts: CreateOpts) {\n // @ts-ignore\n const capsules = await this.create(componentIds, opts);\n return capsules.map((c) => ({\n id: c.component.id.toString(),\n path: c.path,\n }));\n }\n}\n\nexport class CapsuleListCmd implements Command {\n name = 'list';\n description = `list the capsules generated for this workspace`;\n group = 'capsules';\n alias = '';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private workspace: Workspace | undefined, private scope: ScopeMain) {}\n\n async report() {\n const { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir } = this.getCapsulesRootDirs();\n const listWs = workspaceCapsulesRootDir ? await this.isolator.list(workspaceCapsulesRootDir) : undefined;\n const listScope = await this.isolator.list(scopeAspectsCapsulesRootDir);\n\n const hostPath = this.workspace ? this.workspace.path : this.scope.path;\n const numOfWsCapsules = listWs ? listWs.capsules.length : listScope.capsules.length;\n const hostType = this.workspace ? 'workspace' : 'scope';\n\n const title = chalk.green(\n `found ${chalk.cyan(numOfWsCapsules.toString())} capsule(s) for ${hostType}: ${chalk.cyan(hostPath)}`\n );\n const wsLine = listWs\n ? chalk.green(`workspace capsules root-dir: ${chalk.cyan(workspaceCapsulesRootDir)}`)\n : undefined;\n const scopeLine = chalk.green(`scope's aspects capsules root-dir: ${chalk.cyan(scopeAspectsCapsulesRootDir)}`);\n const suggestLine = chalk.green(`use --json to get the list of all capsules`);\n const lines = [title, wsLine, scopeLine, suggestLine].filter((x) => x).join('\\n');\n\n // TODO: improve output\n return lines;\n }\n\n async json() {\n const rootDirs = this.getCapsulesRootDirs();\n const listWs = rootDirs.workspaceCapsulesRootDir\n ? await this.isolator.list(rootDirs.workspaceCapsulesRootDir)\n : undefined;\n const listScope = await this.isolator.list(rootDirs.scopeAspectsCapsulesRootDir);\n const capsules = listWs ? listWs.capsules : [];\n const scopeCapsules = listScope ? listScope.capsules : [];\n return { ...rootDirs, capsules, scopeCapsules };\n }\n\n private getCapsulesRootDirs() {\n return getCapsulesRootDirs(this.isolator, this.scope, this.workspace);\n }\n}\n\nexport class CapsuleDeleteCmd implements Command {\n name = 'delete';\n description = `delete capsules`;\n extendedDescription = `with no args, only workspace's capsules are deleted`;\n group = 'capsules';\n alias = '';\n options = [\n ['', 'scope-aspects', 'delete scope-aspects capsules'],\n ['a', 'all', 'delete all capsules for all workspaces and scopes'],\n ] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private scope: ScopeMain, private workspace?: Workspace) {}\n\n async report(args: [], { all, scopeAspects }: { all: boolean; scopeAspects: boolean }) {\n const capsuleBaseDirToDelete = (): string | undefined => {\n if (all) return undefined;\n if (scopeAspects) {\n const { scopeAspectsCapsulesRootDir } = getCapsulesRootDirs(this.isolator, this.scope, this.workspace);\n return scopeAspectsCapsulesRootDir;\n }\n return undefined;\n };\n const capsuleBaseDir = capsuleBaseDirToDelete();\n const deletedDir = await this.isolator.deleteCapsules(capsuleBaseDir);\n return chalk.green(`the following capsules dir has been deleted ${chalk.bold(deletedDir)}`);\n }\n}\n\nexport class CapsuleCmd implements Command {\n name = 'capsule';\n description = 'manage capsules';\n extendedDescription = `a capsule is a directory containing the component code, isolated from the workspace.\nnormally, capsules are created during the build process, the component files are copied and the packages are installed\nvia the configured package-manager. the purpose is to compile/test them in isolation to make sure they will work for\nother users after publishing/exporting them.`;\n alias = '';\n group = 'capsules';\n commands: Command[] = [];\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private workspace: Workspace | undefined, private scope: ScopeMain) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async report(args: [string]) {\n return new CapsuleListCmd(this.isolator, this.workspace, this.scope).report();\n }\n}\n\nfunction getCapsulesRootDirs(isolator, scope, workspace) {\n const workspaceCapsulesRootDir = workspace\n ? isolator.getCapsulesRootDir({\n baseDir: workspace.getCapsulePath(),\n useHash: workspace.shouldUseHashForCapsules(),\n })\n : undefined;\n const scopeAspectsCapsulesRootDir = isolator.getCapsulesRootDir({\n baseDir: scope.getAspectCapsulePath(),\n useHash: scope.shouldUseHashForCapsules(),\n });\n\n return { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","CapsuleCreateCmd","constructor","workspace","scope","isolator","create","componentIds","baseDir","rootBaseDir","alwaysNew","id","installPackages","seedersOnly","useHash","Array","isArray","finalUseHash","undefined","shouldUseHashForCapsules","baseInstallOptions","additionalInstallOptions","copyPeerToRuntimeOnRoot","useNesting","copyPeerToRuntimeOnComponents","installPeersFromEnvs","installOptions","capsuleOptions","includeFromNestedHosts","name","host","ids","resolveMultipleComponentIds","network","isolateComponents","capsules","graphCapsules","report","opts","capsuleOutput","map","capsule","chalk","bold","component","toString","path","join","title","green","json","c","exports","CapsuleListCmd","workspaceCapsulesRootDir","scopeAspectsCapsulesRootDir","getCapsulesRootDirs","listWs","list","listScope","hostPath","numOfWsCapsules","hostType","cyan","wsLine","scopeLine","suggestLine","lines","x","rootDirs","scopeCapsules","CapsuleDeleteCmd","args","all","scopeAspects","capsuleBaseDirToDelete","capsuleBaseDir","deletedDir","deleteCapsules","CapsuleCmd","getCapsulesRootDir","getCapsulePath","getAspectCapsulePath"],"sources":["capsule.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { CapsuleList, IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';\nimport type { ScopeMain } from '@teambit/scope';\nimport chalk from 'chalk';\n\nimport { Workspace } from '.';\n\ntype CreateOpts = {\n baseDir?: string;\n rootBaseDir?: string;\n alwaysNew?: boolean;\n seedersOnly?: boolean;\n useHash?: boolean;\n id: string;\n installPackages?: boolean;\n};\n\nexport class CapsuleCreateCmd implements Command {\n name = 'create [component-id...]';\n description = `create capsules for components`;\n helpUrl = 'reference/build-pipeline/capsule';\n group = 'capsules';\n alias = '';\n options = [\n [\n 'b',\n 'base-dir <name>',\n 'set base dir of all capsules (hashed to create the base dir inside the root dir - host path by default)',\n ],\n ['r', 'root-base-dir <name>', 'set root base dir of all capsules (absolute path to use as root dir)'],\n ['a', 'always-new', 'create new environment for capsule'],\n ['s', 'seeders-only', 'create capsules for the seeders only (not for the entire graph)'],\n ['i', 'id <name>', 'reuse capsule of certain name'],\n ['', 'use-hash', 'whether to use hash function (of base dir) as capsules root dir name'],\n ['j', 'json', 'json format'],\n ['d', 'install-packages', 'install packages by the package-manager'],\n ['p', 'package-manager <name>', 'npm, yarn or pnpm, default to npm'],\n ] as CommandOptions;\n\n constructor(private workspace: Workspace | undefined, private scope: ScopeMain, private isolator: IsolatorMain) {}\n\n async create(\n [componentIds = []]: [string[]],\n { baseDir, rootBaseDir, alwaysNew = false, id, installPackages = false, seedersOnly = false, useHash }: CreateOpts\n ): Promise<CapsuleList> {\n // @todo: why it is not an array?\n if (componentIds && !Array.isArray(componentIds)) componentIds = [componentIds];\n let finalUseHash = useHash;\n if (useHash === undefined) {\n if (baseDir) {\n finalUseHash = false;\n } else {\n finalUseHash = this.workspace\n ? this.workspace?.shouldUseHashForCapsules()\n : this.scope.shouldUseHashForCapsules();\n }\n }\n\n const baseInstallOptions = { installPackages };\n const additionalInstallOptions = this.workspace\n ? {}\n : {\n copyPeerToRuntimeOnRoot: true,\n useNesting: true,\n copyPeerToRuntimeOnComponents: true,\n installPeersFromEnvs: true,\n };\n const installOptions = { ...baseInstallOptions, ...additionalInstallOptions };\n\n const capsuleOptions: IsolateComponentsOptions = {\n baseDir,\n rootBaseDir,\n installOptions,\n alwaysNew,\n seedersOnly,\n includeFromNestedHosts: true,\n name: id,\n useHash: finalUseHash,\n };\n const host = this.workspace || this.scope;\n const ids = await host.resolveMultipleComponentIds(componentIds);\n const network = await this.isolator.isolateComponents(ids, capsuleOptions);\n const capsules = network.graphCapsules;\n return capsules;\n }\n\n async report([componentIds]: [string[]], opts: CreateOpts) {\n // @ts-ignore\n const capsules = await this.create(componentIds, opts);\n const capsuleOutput = capsules\n .map((capsule) => `${chalk.bold(capsule.component.id.toString())} - ${capsule.path}`)\n .join('\\n');\n const title = `${capsules.length} capsule(s) were created successfully`;\n return `${chalk.green(title)}\\n${capsuleOutput}`;\n }\n\n async json([componentIds]: [string[]], opts: CreateOpts) {\n // @ts-ignore\n const capsules = await this.create(componentIds, opts);\n return capsules.map((c) => ({\n id: c.component.id.toString(),\n path: c.path,\n }));\n }\n}\n\nexport class CapsuleListCmd implements Command {\n name = 'list';\n description = `list the capsules generated for this workspace`;\n group = 'capsules';\n alias = '';\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private workspace: Workspace | undefined, private scope: ScopeMain) {}\n\n async report() {\n const { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir } = this.getCapsulesRootDirs();\n const listWs = workspaceCapsulesRootDir ? await this.isolator.list(workspaceCapsulesRootDir) : undefined;\n const listScope = await this.isolator.list(scopeAspectsCapsulesRootDir);\n\n const hostPath = this.workspace ? this.workspace.path : this.scope.path;\n const numOfWsCapsules = listWs ? listWs.capsules.length : listScope.capsules.length;\n const hostType = this.workspace ? 'workspace' : 'scope';\n\n const title = chalk.green(\n `found ${chalk.cyan(numOfWsCapsules.toString())} capsule(s) for ${hostType}: ${chalk.cyan(hostPath)}`\n );\n const wsLine = listWs\n ? chalk.green(`workspace capsules root-dir: ${chalk.cyan(workspaceCapsulesRootDir)}`)\n : undefined;\n const scopeLine = chalk.green(`scope's aspects capsules root-dir: ${chalk.cyan(scopeAspectsCapsulesRootDir)}`);\n const suggestLine = chalk.green(`use --json to get the list of all capsules`);\n const lines = [title, wsLine, scopeLine, suggestLine].filter((x) => x).join('\\n');\n\n // TODO: improve output\n return lines;\n }\n\n async json() {\n const rootDirs = this.getCapsulesRootDirs();\n const listWs = rootDirs.workspaceCapsulesRootDir\n ? await this.isolator.list(rootDirs.workspaceCapsulesRootDir)\n : undefined;\n const listScope = await this.isolator.list(rootDirs.scopeAspectsCapsulesRootDir);\n const capsules = listWs ? listWs.capsules : [];\n const scopeCapsules = listScope ? listScope.capsules : [];\n return { ...rootDirs, capsules, scopeCapsules };\n }\n\n private getCapsulesRootDirs() {\n return getCapsulesRootDirs(this.isolator, this.scope, this.workspace);\n }\n}\n\nexport class CapsuleDeleteCmd implements Command {\n name = 'delete';\n description = `delete capsules`;\n extendedDescription = `with no args, only workspace's capsules are deleted`;\n group = 'capsules';\n alias = '';\n options = [\n ['', 'scope-aspects', 'delete scope-aspects capsules'],\n ['a', 'all', 'delete all capsules for all workspaces and scopes'],\n ] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private scope: ScopeMain, private workspace?: Workspace) {}\n\n async report(args: [], { all, scopeAspects }: { all: boolean; scopeAspects: boolean }) {\n const capsuleBaseDirToDelete = (): string | undefined => {\n if (all) return undefined;\n if (scopeAspects) {\n const { scopeAspectsCapsulesRootDir } = getCapsulesRootDirs(this.isolator, this.scope, this.workspace);\n return scopeAspectsCapsulesRootDir;\n }\n return undefined;\n };\n const capsuleBaseDir = capsuleBaseDirToDelete();\n const deletedDir = await this.isolator.deleteCapsules(capsuleBaseDir);\n return chalk.green(`the following capsules dir has been deleted ${chalk.bold(deletedDir)}`);\n }\n}\n\nexport class CapsuleCmd implements Command {\n name = 'capsule';\n description = 'manage capsules';\n extendedDescription = `a capsule is a directory containing the component code, isolated from the workspace.\nnormally, capsules are created during the build process, the component files are copied and the packages are installed\nvia the configured package-manager. the purpose is to compile/test them in isolation to make sure they will work for\nother users after publishing/exporting them.`;\n alias = '';\n group = 'capsules';\n commands: Command[] = [];\n options = [['j', 'json', 'json format']] as CommandOptions;\n\n constructor(private isolator: IsolatorMain, private workspace: Workspace | undefined, private scope: ScopeMain) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async report(args: [string]) {\n return new CapsuleListCmd(this.isolator, this.workspace, this.scope).report();\n }\n}\n\nfunction getCapsulesRootDirs(isolator, scope, workspace) {\n const workspaceCapsulesRootDir = workspace\n ? isolator.getCapsulesRootDir({\n baseDir: workspace.getCapsulePath(),\n useHash: workspace.shouldUseHashForCapsules(),\n })\n : undefined;\n const scopeAspectsCapsulesRootDir = isolator.getCapsulesRootDir({\n baseDir: scope.getAspectCapsulePath(),\n useHash: scope.shouldUseHashForCapsules(),\n });\n\n return { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir };\n}\n"],"mappings":";;;;;;AAIA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA0B,SAAAC,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAgB,gBAAApB,GAAA,EAAAwB,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAxB,GAAA,IAAAO,MAAA,CAAAgB,cAAA,CAAAvB,GAAA,EAAAwB,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAZ,UAAA,QAAAc,YAAA,QAAAC,QAAA,oBAAA5B,GAAA,CAAAwB,GAAA,IAAAC,KAAA,WAAAzB,GAAA;AAAA,SAAA0B,eAAApB,CAAA,QAAAuB,CAAA,GAAAC,YAAA,CAAAxB,CAAA,uCAAAuB,CAAA,GAAAA,CAAA,GAAAE,MAAA,CAAAF,CAAA;AAAA,SAAAC,aAAAxB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAA0B,MAAA,CAAAC,WAAA,kBAAA7B,CAAA,QAAAyB,CAAA,GAAAzB,CAAA,CAAA8B,IAAA,CAAA5B,CAAA,EAAAD,CAAA,uCAAAwB,CAAA,SAAAA,CAAA,YAAAM,SAAA,yEAAA9B,CAAA,GAAA0B,MAAA,GAAAK,MAAA,EAAA9B,CAAA,KAJ1B;AAkBO,MAAM+B,gBAAgB,CAAoB;EAsB/CC,WAAWA,CAASC,SAAgC,EAAUC,KAAgB,EAAUC,QAAsB,EAAE;IAAA,KAA5FF,SAAgC,GAAhCA,SAAgC;IAAA,KAAUC,KAAgB,GAAhBA,KAAgB;IAAA,KAAUC,QAAsB,GAAtBA,QAAsB;IAAArB,eAAA,eArBvG,0BAA0B;IAAAA,eAAA,sBAClB,gCAA+B;IAAAA,eAAA,kBACpC,kCAAkC;IAAAA,eAAA,gBACpC,UAAU;IAAAA,eAAA,gBACV,EAAE;IAAAA,eAAA,kBACA,CACR,CACE,GAAG,EACH,iBAAiB,EACjB,yGAAyG,CAC1G,EACD,CAAC,GAAG,EAAE,sBAAsB,EAAE,sEAAsE,CAAC,EACrG,CAAC,GAAG,EAAE,YAAY,EAAE,oCAAoC,CAAC,EACzD,CAAC,GAAG,EAAE,cAAc,EAAE,iEAAiE,CAAC,EACxF,CAAC,GAAG,EAAE,WAAW,EAAE,+BAA+B,CAAC,EACnD,CAAC,EAAE,EAAE,UAAU,EAAE,sEAAsE,CAAC,EACxF,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAC5B,CAAC,GAAG,EAAE,kBAAkB,EAAE,yCAAyC,CAAC,EACpE,CAAC,GAAG,EAAE,wBAAwB,EAAE,mCAAmC,CAAC,CACrE;EAEgH;EAEjH,MAAMsB,MAAMA,CACV,CAACC,YAAY,GAAG,EAAE,CAAa,EAC/B;IAAEC,OAAO;IAAEC,WAAW;IAAEC,SAAS,GAAG,KAAK;IAAEC,EAAE;IAAEC,eAAe,GAAG,KAAK;IAAEC,WAAW,GAAG,KAAK;IAAEC;EAAoB,CAAC,EAC5F;IACtB;IACA,IAAIP,YAAY,IAAI,CAACQ,KAAK,CAACC,OAAO,CAACT,YAAY,CAAC,EAAEA,YAAY,GAAG,CAACA,YAAY,CAAC;IAC/E,IAAIU,YAAY,GAAGH,OAAO;IAC1B,IAAIA,OAAO,KAAKI,SAAS,EAAE;MACzB,IAAIV,OAAO,EAAE;QACXS,YAAY,GAAG,KAAK;MACtB,CAAC,MAAM;QACLA,YAAY,GAAG,IAAI,CAACd,SAAS,GACzB,IAAI,CAACA,SAAS,EAAEgB,wBAAwB,CAAC,CAAC,GAC1C,IAAI,CAACf,KAAK,CAACe,wBAAwB,CAAC,CAAC;MAC3C;IACF;IAEA,MAAMC,kBAAkB,GAAG;MAAER;IAAgB,CAAC;IAC9C,MAAMS,wBAAwB,GAAG,IAAI,CAAClB,SAAS,GAC3C,CAAC,CAAC,GACF;MACEmB,uBAAuB,EAAE,IAAI;MAC7BC,UAAU,EAAE,IAAI;MAChBC,6BAA6B,EAAE,IAAI;MACnCC,oBAAoB,EAAE;IACxB,CAAC;IACL,MAAMC,cAAc,GAAA9C,aAAA,CAAAA,aAAA,KAAQwC,kBAAkB,GAAKC,wBAAwB,CAAE;IAE7E,MAAMM,cAAwC,GAAG;MAC/CnB,OAAO;MACPC,WAAW;MACXiB,cAAc;MACdhB,SAAS;MACTG,WAAW;MACXe,sBAAsB,EAAE,IAAI;MAC5BC,IAAI,EAAElB,EAAE;MACRG,OAAO,EAAEG;IACX,CAAC;IACD,MAAMa,IAAI,GAAG,IAAI,CAAC3B,SAAS,IAAI,IAAI,CAACC,KAAK;IACzC,MAAM2B,GAAG,GAAG,MAAMD,IAAI,CAACE,2BAA2B,CAACzB,YAAY,CAAC;IAChE,MAAM0B,OAAO,GAAG,MAAM,IAAI,CAAC5B,QAAQ,CAAC6B,iBAAiB,CAACH,GAAG,EAAEJ,cAAc,CAAC;IAC1E,MAAMQ,QAAQ,GAAGF,OAAO,CAACG,aAAa;IACtC,OAAOD,QAAQ;EACjB;EAEA,MAAME,MAAMA,CAAC,CAAC9B,YAAY,CAAa,EAAE+B,IAAgB,EAAE;IACzD;IACA,MAAMH,QAAQ,GAAG,MAAM,IAAI,CAAC7B,MAAM,CAACC,YAAY,EAAE+B,IAAI,CAAC;IACtD,MAAMC,aAAa,GAAGJ,QAAQ,CAC3BK,GAAG,CAAEC,OAAO,IAAM,GAAEC,gBAAK,CAACC,IAAI,CAACF,OAAO,CAACG,SAAS,CAACjC,EAAE,CAACkC,QAAQ,CAAC,CAAC,CAAE,MAAKJ,OAAO,CAACK,IAAK,EAAC,CAAC,CACpFC,IAAI,CAAC,IAAI,CAAC;IACb,MAAMC,KAAK,GAAI,GAAEb,QAAQ,CAACrD,MAAO,uCAAsC;IACvE,OAAQ,GAAE4D,gBAAK,CAACO,KAAK,CAACD,KAAK,CAAE,KAAIT,aAAc,EAAC;EAClD;EAEA,MAAMW,IAAIA,CAAC,CAAC3C,YAAY,CAAa,EAAE+B,IAAgB,EAAE;IACvD;IACA,MAAMH,QAAQ,GAAG,MAAM,IAAI,CAAC7B,MAAM,CAACC,YAAY,EAAE+B,IAAI,CAAC;IACtD,OAAOH,QAAQ,CAACK,GAAG,CAAEW,CAAC,KAAM;MAC1BxC,EAAE,EAAEwC,CAAC,CAACP,SAAS,CAACjC,EAAE,CAACkC,QAAQ,CAAC,CAAC;MAC7BC,IAAI,EAAEK,CAAC,CAACL;IACV,CAAC,CAAC,CAAC;EACL;AACF;AAACM,OAAA,CAAAnD,gBAAA,GAAAA,gBAAA;AAEM,MAAMoD,cAAc,CAAoB;EAO7CnD,WAAWA,CAASG,QAAsB,EAAUF,SAAgC,EAAUC,KAAgB,EAAE;IAAA,KAA5FC,QAAsB,GAAtBA,QAAsB;IAAA,KAAUF,SAAgC,GAAhCA,SAAgC;IAAA,KAAUC,KAAgB,GAAhBA,KAAgB;IAAApB,eAAA,eANvG,MAAM;IAAAA,eAAA,sBACE,gDAA+C;IAAAA,eAAA,gBACtD,UAAU;IAAAA,eAAA,gBACV,EAAE;IAAAA,eAAA,kBACA,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EAEyE;EAEjH,MAAMqD,MAAMA,CAAA,EAAG;IACb,MAAM;MAAEiB,wBAAwB;MAAEC;IAA4B,CAAC,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC5F,MAAMC,MAAM,GAAGH,wBAAwB,GAAG,MAAM,IAAI,CAACjD,QAAQ,CAACqD,IAAI,CAACJ,wBAAwB,CAAC,GAAGpC,SAAS;IACxG,MAAMyC,SAAS,GAAG,MAAM,IAAI,CAACtD,QAAQ,CAACqD,IAAI,CAACH,2BAA2B,CAAC;IAEvE,MAAMK,QAAQ,GAAG,IAAI,CAACzD,SAAS,GAAG,IAAI,CAACA,SAAS,CAAC2C,IAAI,GAAG,IAAI,CAAC1C,KAAK,CAAC0C,IAAI;IACvE,MAAMe,eAAe,GAAGJ,MAAM,GAAGA,MAAM,CAACtB,QAAQ,CAACrD,MAAM,GAAG6E,SAAS,CAACxB,QAAQ,CAACrD,MAAM;IACnF,MAAMgF,QAAQ,GAAG,IAAI,CAAC3D,SAAS,GAAG,WAAW,GAAG,OAAO;IAEvD,MAAM6C,KAAK,GAAGN,gBAAK,CAACO,KAAK,CACtB,SAAQP,gBAAK,CAACqB,IAAI,CAACF,eAAe,CAAChB,QAAQ,CAAC,CAAC,CAAE,mBAAkBiB,QAAS,MAAKpB,gBAAK,CAACqB,IAAI,CAACH,QAAQ,CAAE,EACvG,CAAC;IACD,MAAMI,MAAM,GAAGP,MAAM,GACjBf,gBAAK,CAACO,KAAK,CAAE,sCAAqCP,gBAAK,CAACqB,IAAI,CAACT,wBAAwB,CAAE,EAAC,CAAC,GACzFpC,SAAS;IACb,MAAM+C,SAAS,GAAGvB,gBAAK,CAACO,KAAK,CAAE,sCAAqCP,gBAAK,CAACqB,IAAI,CAACR,2BAA2B,CAAE,EAAC,CAAC;IAC9G,MAAMW,WAAW,GAAGxB,gBAAK,CAACO,KAAK,CAAE,4CAA2C,CAAC;IAC7E,MAAMkB,KAAK,GAAG,CAACnB,KAAK,EAAEgB,MAAM,EAAEC,SAAS,EAAEC,WAAW,CAAC,CAAC3F,MAAM,CAAE6F,CAAC,IAAKA,CAAC,CAAC,CAACrB,IAAI,CAAC,IAAI,CAAC;;IAEjF;IACA,OAAOoB,KAAK;EACd;EAEA,MAAMjB,IAAIA,CAAA,EAAG;IACX,MAAMmB,QAAQ,GAAG,IAAI,CAACb,mBAAmB,CAAC,CAAC;IAC3C,MAAMC,MAAM,GAAGY,QAAQ,CAACf,wBAAwB,GAC5C,MAAM,IAAI,CAACjD,QAAQ,CAACqD,IAAI,CAACW,QAAQ,CAACf,wBAAwB,CAAC,GAC3DpC,SAAS;IACb,MAAMyC,SAAS,GAAG,MAAM,IAAI,CAACtD,QAAQ,CAACqD,IAAI,CAACW,QAAQ,CAACd,2BAA2B,CAAC;IAChF,MAAMpB,QAAQ,GAAGsB,MAAM,GAAGA,MAAM,CAACtB,QAAQ,GAAG,EAAE;IAC9C,MAAMmC,aAAa,GAAGX,SAAS,GAAGA,SAAS,CAACxB,QAAQ,GAAG,EAAE;IACzD,OAAAvD,aAAA,CAAAA,aAAA,KAAYyF,QAAQ;MAAElC,QAAQ;MAAEmC;IAAa;EAC/C;EAEQd,mBAAmBA,CAAA,EAAG;IAC5B,OAAOA,mBAAmB,CAAC,IAAI,CAACnD,QAAQ,EAAE,IAAI,CAACD,KAAK,EAAE,IAAI,CAACD,SAAS,CAAC;EACvE;AACF;AAACiD,OAAA,CAAAC,cAAA,GAAAA,cAAA;AAEM,MAAMkB,gBAAgB,CAAoB;EAW/CrE,WAAWA,CAASG,QAAsB,EAAUD,KAAgB,EAAUD,SAAqB,EAAE;IAAA,KAAjFE,QAAsB,GAAtBA,QAAsB;IAAA,KAAUD,KAAgB,GAAhBA,KAAgB;IAAA,KAAUD,SAAqB,GAArBA,SAAqB;IAAAnB,eAAA,eAV5F,QAAQ;IAAAA,eAAA,sBACA,iBAAgB;IAAAA,eAAA,8BACR,qDAAoD;IAAAA,eAAA,gBACnE,UAAU;IAAAA,eAAA,gBACV,EAAE;IAAAA,eAAA,kBACA,CACR,CAAC,EAAE,EAAE,eAAe,EAAE,+BAA+B,CAAC,EACtD,CAAC,GAAG,EAAE,KAAK,EAAE,mDAAmD,CAAC,CAClE;EAEqG;EAEtG,MAAMqD,MAAMA,CAACmC,IAAQ,EAAE;IAAEC,GAAG;IAAEC;EAAsD,CAAC,EAAE;IACrF,MAAMC,sBAAsB,GAAGA,CAAA,KAA0B;MACvD,IAAIF,GAAG,EAAE,OAAOvD,SAAS;MACzB,IAAIwD,YAAY,EAAE;QAChB,MAAM;UAAEnB;QAA4B,CAAC,GAAGC,mBAAmB,CAAC,IAAI,CAACnD,QAAQ,EAAE,IAAI,CAACD,KAAK,EAAE,IAAI,CAACD,SAAS,CAAC;QACtG,OAAOoD,2BAA2B;MACpC;MACA,OAAOrC,SAAS;IAClB,CAAC;IACD,MAAM0D,cAAc,GAAGD,sBAAsB,CAAC,CAAC;IAC/C,MAAME,UAAU,GAAG,MAAM,IAAI,CAACxE,QAAQ,CAACyE,cAAc,CAACF,cAAc,CAAC;IACrE,OAAOlC,gBAAK,CAACO,KAAK,CAAE,+CAA8CP,gBAAK,CAACC,IAAI,CAACkC,UAAU,CAAE,EAAC,CAAC;EAC7F;AACF;AAACzB,OAAA,CAAAmB,gBAAA,GAAAA,gBAAA;AAEM,MAAMQ,UAAU,CAAoB;EAYzC7E,WAAWA,CAASG,QAAsB,EAAUF,SAAgC,EAAUC,KAAgB,EAAE;IAAA,KAA5FC,QAAsB,GAAtBA,QAAsB;IAAA,KAAUF,SAAgC,GAAhCA,SAAgC;IAAA,KAAUC,KAAgB,GAAhBA,KAAgB;IAAApB,eAAA,eAXvG,SAAS;IAAAA,eAAA,sBACF,iBAAiB;IAAAA,eAAA,8BACR;AACzB;AACA;AACA,6CAA6C;IAAAA,eAAA,gBACnC,EAAE;IAAAA,eAAA,gBACF,UAAU;IAAAA,eAAA,mBACI,EAAE;IAAAA,eAAA,kBACd,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;EAEyE;;EAEjH;EACA,MAAMqD,MAAMA,CAACmC,IAAc,EAAE;IAC3B,OAAO,IAAInB,cAAc,CAAC,IAAI,CAAChD,QAAQ,EAAE,IAAI,CAACF,SAAS,EAAE,IAAI,CAACC,KAAK,CAAC,CAACiC,MAAM,CAAC,CAAC;EAC/E;AACF;AAACe,OAAA,CAAA2B,UAAA,GAAAA,UAAA;AAED,SAASvB,mBAAmBA,CAACnD,QAAQ,EAAED,KAAK,EAAED,SAAS,EAAE;EACvD,MAAMmD,wBAAwB,GAAGnD,SAAS,GACtCE,QAAQ,CAAC2E,kBAAkB,CAAC;IAC1BxE,OAAO,EAAEL,SAAS,CAAC8E,cAAc,CAAC,CAAC;IACnCnE,OAAO,EAAEX,SAAS,CAACgB,wBAAwB,CAAC;EAC9C,CAAC,CAAC,GACFD,SAAS;EACb,MAAMqC,2BAA2B,GAAGlD,QAAQ,CAAC2E,kBAAkB,CAAC;IAC9DxE,OAAO,EAAEJ,KAAK,CAAC8E,oBAAoB,CAAC,CAAC;IACrCpE,OAAO,EAAEV,KAAK,CAACe,wBAAwB,CAAC;EAC1C,CAAC,CAAC;EAEF,OAAO;IAAEmC,wBAAwB;IAAEC;EAA4B,CAAC;AAClE"}
@@ -20,8 +20,8 @@ export declare class ComponentConfigFile {
20
20
  private componentDir;
21
21
  propagate: boolean;
22
22
  private options;
23
- defaultScope?: string | undefined;
24
- constructor(componentId: ComponentID, aspects: AspectList, componentDir: PathOsBasedAbsolute, propagate?: boolean, options?: ComponentConfigFileOptions, defaultScope?: string | undefined);
23
+ defaultScope?: string;
24
+ constructor(componentId: ComponentID, aspects: AspectList, componentDir: PathOsBasedAbsolute, propagate?: boolean, options?: ComponentConfigFileOptions, defaultScope?: string);
25
25
  static load(componentDir: PathOsBasedAbsolute, aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>, outsideDefaultScope?: string): Promise<ComponentConfigFile | undefined>;
26
26
  static composePath(componentRootFolder: string): string;
27
27
  write(options?: WriteConfigFileOptions): Promise<void>;
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ /// <reference types="react" />
2
2
  import { ComponentTreeNode, ComponentTreeNodeProps } from '@teambit/component-tree';
3
3
  export declare class ComponentTreeWidget implements ComponentTreeNode {
4
- widget: ({ component }: ComponentTreeNodeProps) => React.JSX.Element;
4
+ widget: ({ component }: ComponentTreeNodeProps) => JSX.Element;
5
5
  }
@@ -1,7 +1,7 @@
1
1
  import { Command, CommandOptions } from '@teambit/cli';
2
2
  import { EjectConfResult, Workspace } from './workspace';
3
- declare type EjectConfArgs = [string];
4
- declare type EjectConfOptionsCLI = {
3
+ type EjectConfArgs = [string];
4
+ type EjectConfOptionsCLI = {
5
5
  propagate: string | boolean | undefined;
6
6
  override: string | boolean | undefined;
7
7
  };
@@ -4,7 +4,7 @@ export declare class EnvsReplaceCmd implements Command {
4
4
  private workspace;
5
5
  name: string;
6
6
  description: string;
7
- options: never[];
7
+ options: any[];
8
8
  group: string;
9
9
  arguments: {
10
10
  name: string;
@@ -12,7 +12,7 @@ export declare class EnvsSetCmd implements Command {
12
12
  cmd: string;
13
13
  description: string;
14
14
  }[];
15
- options: never[];
15
+ options: any[];
16
16
  group: string;
17
17
  constructor(workspace: Workspace);
18
18
  report([pattern, env]: [string, string]): Promise<string>;
@@ -8,7 +8,7 @@ export declare class EnvsUnsetCmd implements Command {
8
8
  name: string;
9
9
  description: string;
10
10
  }[];
11
- options: never[];
11
+ options: any[];
12
12
  group: string;
13
13
  extendedDescription: string;
14
14
  constructor(workspace: Workspace);
@@ -12,7 +12,7 @@ export declare class EnvsUpdateCmd implements Command {
12
12
  cmd: string;
13
13
  description: string;
14
14
  }[];
15
- options: never[];
15
+ options: any[];
16
16
  group: string;
17
17
  constructor(workspace: Workspace);
18
18
  report([aspectId, pattern]: [string, string]): Promise<string>;
package/dist/filter.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ComponentID, ComponentIdList } from '@teambit/component-id';
2
2
  import { Workspace } from './workspace';
3
3
  export declare const statesFilter: readonly ["new", "modified", "deprecated", "deleted", "snappedOnMain", "softTagged", "codeModified"];
4
- export declare type StatesFilter = typeof statesFilter[number];
4
+ export type StatesFilter = typeof statesFilter[number];
5
5
  export declare class Filter {
6
6
  private workspace;
7
7
  constructor(workspace: Workspace);
package/dist/filter.js CHANGED
@@ -91,7 +91,7 @@ class Filter {
91
91
  const comps = await this.workspace.getMany(ids);
92
92
  const results = await Promise.all(comps.map(async c => {
93
93
  const modelComponent = await this.workspace.consumer.scope.getModelComponentIfExist(c.id);
94
- const deprecated = await (modelComponent === null || modelComponent === void 0 ? void 0 : modelComponent.isDeprecated(this.workspace.consumer.scope.objects));
94
+ const deprecated = await modelComponent?.isDeprecated(this.workspace.consumer.scope.objects);
95
95
  return deprecated ? c.id : null;
96
96
  }));
97
97
  return (0, _lodash().compact)(results);
@@ -1 +1 @@
1
- {"version":3,"names":["_componentId","data","require","_pMapSeries","_interopRequireDefault","_lodash","obj","__esModule","default","statesFilter","exports","Filter","constructor","workspace","by","criteria","ids","includes","byMultiParamState","byState","state","statePerMethod","new","byNew","modified","byModified","deprecated","byDeprecated","deleted","byDeleted","snappedOnMain","bySnappedOnMain","softTagged","bySoftTagged","codeModified","byCodeModified","Error","join","bind","stateSplit","split","length","stateName","stateParams","byEnv","env","withinIds","listIds","comps","getMany","compsUsingEnv","filter","c","envId","envs","getEnvId","envIdWithoutVer","ComponentID","getStringWithoutVersion","map","id","modifiedIds","Promise","all","comp","isModified","undefined","compact","compFiles","pMapSeries","getFilesModification","hasVersion","results","modelComponent","consumer","scope","getModelComponentIfExist","isDeprecated","objects","deletedIds","isDeleted","byDuringMergeState","unmergedComponents","legacyScope","getComponents","ComponentIdList","fromArray","u","fromObject","isOnMain","compIds","componentsFromModel","getModelComps","compsDuringMerge","hasWithoutVersion","toComponentId","isHeadSnap","toComponentIdWithHead","withCompIds","bitMap","components","nextVersion","getBitObjectModelComponent"],"sources":["filter.ts"],"sourcesContent":["import { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { compact } from 'lodash';\nimport { Workspace } from './workspace';\n\nexport const statesFilter = [\n 'new',\n 'modified',\n 'deprecated',\n 'deleted',\n 'snappedOnMain',\n 'softTagged',\n 'codeModified',\n] as const;\nexport type StatesFilter = typeof statesFilter[number];\n\nexport class Filter {\n constructor(private workspace: Workspace) {}\n\n async by(criteria: StatesFilter | string, ids: ComponentID[]): Promise<ComponentID[]> {\n return criteria.includes(':') ? this.byMultiParamState(criteria, ids) : this.byState(criteria as StatesFilter, ids);\n }\n\n async byState(state: StatesFilter, ids: ComponentID[]): Promise<ComponentID[]> {\n const statePerMethod = {\n new: this.byNew,\n modified: this.byModified,\n deprecated: this.byDeprecated,\n deleted: this.byDeleted,\n snappedOnMain: this.bySnappedOnMain,\n softTagged: this.bySoftTagged,\n codeModified: this.byCodeModified,\n };\n if (!statePerMethod[state]) {\n throw new Error(`state ${state} is not recognized, possible values: ${statesFilter.join(', ')}`);\n }\n return statePerMethod[state].bind(this)(ids);\n }\n\n async byMultiParamState(state: string, ids: ComponentID[]): Promise<ComponentID[]> {\n const stateSplit = state.split(':');\n if (stateSplit.length < 2) {\n throw new Error(`byMultiParamState expect the state to have at least one param after the colon, got ${state}`);\n }\n const [stateName, ...stateParams] = stateSplit;\n if (stateName === 'env') {\n return this.byEnv(stateParams[0], ids);\n }\n throw new Error(`byMultiParamState expect the state to be one of the following: ['env'], got ${stateName}`);\n }\n\n async byEnv(env: string, withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const compsUsingEnv = comps.filter((c) => {\n const envId = this.workspace.envs.getEnvId(c);\n const envIdWithoutVer = ComponentID.getStringWithoutVersion(envId);\n return envIdWithoutVer === env;\n });\n return compsUsingEnv.map((c) => c.id);\n }\n\n async byModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const modifiedIds = await Promise.all(comps.map(async (comp) => ((await comp.isModified()) ? comp.id : undefined)));\n return compact(modifiedIds);\n }\n\n async byCodeModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modifiedIds = compFiles.filter((c) => c.isModified()).map((c) => c.id);\n return compact(modifiedIds);\n }\n\n async byNew(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n return ids.filter((id) => !id.hasVersion());\n }\n\n async byDeprecated(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const results = await Promise.all(\n comps.map(async (c) => {\n const modelComponent = await this.workspace.consumer.scope.getModelComponentIfExist(c.id);\n const deprecated = await modelComponent?.isDeprecated(this.workspace.consumer.scope.objects);\n return deprecated ? c.id : null;\n })\n );\n return compact(results);\n }\n\n async byDeleted(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const deletedIds = comps.filter((c) => c.isDeleted()).map((c) => c.id);\n return compact(deletedIds);\n }\n\n byDuringMergeState(): ComponentIdList {\n const unmergedComponents = this.workspace.scope.legacyScope.objects.unmergedComponents.getComponents();\n return ComponentIdList.fromArray(unmergedComponents.map((u) => ComponentID.fromObject(u.id)));\n }\n\n /**\n * list components that their head is a snap, not a tag.\n * this is relevant only when the lane is the default (main), otherwise, the head is always a snap.\n * components that are during-merge are filtered out, we don't want them during tag and don't want\n * to show them in the \"snapped\" section in bit-status.\n */\n async bySnappedOnMain(withinIds?: ComponentID[]) {\n if (!this.workspace.isOnMain()) {\n return [];\n }\n const ids = withinIds || (await this.workspace.listIds());\n const compIds = ComponentIdList.fromArray(ids);\n const componentsFromModel = await this.getModelComps(ids);\n const compsDuringMerge = this.byDuringMergeState();\n const comps = componentsFromModel\n .filter((c) => compIds.hasWithoutVersion(c.toComponentId()))\n .filter((c) => !compsDuringMerge.hasWithoutVersion(c.toComponentId()))\n .filter((c) => c.isHeadSnap());\n return comps.map((c) => c.toComponentIdWithHead());\n }\n\n bySoftTagged(withinIds?: ComponentID[]): ComponentID[] {\n const withCompIds = ComponentIdList.fromArray(withinIds || []);\n const all = this.workspace.consumer.bitMap.components.filter((c) => c.nextVersion).map((c) => c.id);\n return withinIds ? all.filter((id) => withCompIds.hasWithoutVersion(id)) : all;\n }\n\n private async getModelComps(ids: ComponentID[]): Promise<ModelComponent[]> {\n const comps = await Promise.all(ids.map((id) => this.workspace.scope.getBitObjectModelComponent(id, false)));\n return compact(comps);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_componentId","data","require","_pMapSeries","_interopRequireDefault","_lodash","obj","__esModule","default","statesFilter","exports","Filter","constructor","workspace","by","criteria","ids","includes","byMultiParamState","byState","state","statePerMethod","new","byNew","modified","byModified","deprecated","byDeprecated","deleted","byDeleted","snappedOnMain","bySnappedOnMain","softTagged","bySoftTagged","codeModified","byCodeModified","Error","join","bind","stateSplit","split","length","stateName","stateParams","byEnv","env","withinIds","listIds","comps","getMany","compsUsingEnv","filter","c","envId","envs","getEnvId","envIdWithoutVer","ComponentID","getStringWithoutVersion","map","id","modifiedIds","Promise","all","comp","isModified","undefined","compact","compFiles","pMapSeries","getFilesModification","hasVersion","results","modelComponent","consumer","scope","getModelComponentIfExist","isDeprecated","objects","deletedIds","isDeleted","byDuringMergeState","unmergedComponents","legacyScope","getComponents","ComponentIdList","fromArray","u","fromObject","isOnMain","compIds","componentsFromModel","getModelComps","compsDuringMerge","hasWithoutVersion","toComponentId","isHeadSnap","toComponentIdWithHead","withCompIds","bitMap","components","nextVersion","getBitObjectModelComponent"],"sources":["filter.ts"],"sourcesContent":["import { ComponentID, ComponentIdList } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport { ModelComponent } from '@teambit/legacy/dist/scope/models';\nimport { compact } from 'lodash';\nimport { Workspace } from './workspace';\n\nexport const statesFilter = [\n 'new',\n 'modified',\n 'deprecated',\n 'deleted',\n 'snappedOnMain',\n 'softTagged',\n 'codeModified',\n] as const;\nexport type StatesFilter = typeof statesFilter[number];\n\nexport class Filter {\n constructor(private workspace: Workspace) {}\n\n async by(criteria: StatesFilter | string, ids: ComponentID[]): Promise<ComponentID[]> {\n return criteria.includes(':') ? this.byMultiParamState(criteria, ids) : this.byState(criteria as StatesFilter, ids);\n }\n\n async byState(state: StatesFilter, ids: ComponentID[]): Promise<ComponentID[]> {\n const statePerMethod = {\n new: this.byNew,\n modified: this.byModified,\n deprecated: this.byDeprecated,\n deleted: this.byDeleted,\n snappedOnMain: this.bySnappedOnMain,\n softTagged: this.bySoftTagged,\n codeModified: this.byCodeModified,\n };\n if (!statePerMethod[state]) {\n throw new Error(`state ${state} is not recognized, possible values: ${statesFilter.join(', ')}`);\n }\n return statePerMethod[state].bind(this)(ids);\n }\n\n async byMultiParamState(state: string, ids: ComponentID[]): Promise<ComponentID[]> {\n const stateSplit = state.split(':');\n if (stateSplit.length < 2) {\n throw new Error(`byMultiParamState expect the state to have at least one param after the colon, got ${state}`);\n }\n const [stateName, ...stateParams] = stateSplit;\n if (stateName === 'env') {\n return this.byEnv(stateParams[0], ids);\n }\n throw new Error(`byMultiParamState expect the state to be one of the following: ['env'], got ${stateName}`);\n }\n\n async byEnv(env: string, withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const compsUsingEnv = comps.filter((c) => {\n const envId = this.workspace.envs.getEnvId(c);\n const envIdWithoutVer = ComponentID.getStringWithoutVersion(envId);\n return envIdWithoutVer === env;\n });\n return compsUsingEnv.map((c) => c.id);\n }\n\n async byModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const modifiedIds = await Promise.all(comps.map(async (comp) => ((await comp.isModified()) ? comp.id : undefined)));\n return compact(modifiedIds);\n }\n\n async byCodeModified(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n const compFiles = await pMapSeries(ids, (id) => this.workspace.getFilesModification(id));\n const modifiedIds = compFiles.filter((c) => c.isModified()).map((c) => c.id);\n return compact(modifiedIds);\n }\n\n async byNew(withinIds?: ComponentID[]): Promise<ComponentID[]> {\n const ids = withinIds || (await this.workspace.listIds());\n return ids.filter((id) => !id.hasVersion());\n }\n\n async byDeprecated(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const results = await Promise.all(\n comps.map(async (c) => {\n const modelComponent = await this.workspace.consumer.scope.getModelComponentIfExist(c.id);\n const deprecated = await modelComponent?.isDeprecated(this.workspace.consumer.scope.objects);\n return deprecated ? c.id : null;\n })\n );\n return compact(results);\n }\n\n async byDeleted(withinIds?: ComponentID[]) {\n const ids = withinIds || (await this.workspace.listIds());\n const comps = await this.workspace.getMany(ids);\n const deletedIds = comps.filter((c) => c.isDeleted()).map((c) => c.id);\n return compact(deletedIds);\n }\n\n byDuringMergeState(): ComponentIdList {\n const unmergedComponents = this.workspace.scope.legacyScope.objects.unmergedComponents.getComponents();\n return ComponentIdList.fromArray(unmergedComponents.map((u) => ComponentID.fromObject(u.id)));\n }\n\n /**\n * list components that their head is a snap, not a tag.\n * this is relevant only when the lane is the default (main), otherwise, the head is always a snap.\n * components that are during-merge are filtered out, we don't want them during tag and don't want\n * to show them in the \"snapped\" section in bit-status.\n */\n async bySnappedOnMain(withinIds?: ComponentID[]) {\n if (!this.workspace.isOnMain()) {\n return [];\n }\n const ids = withinIds || (await this.workspace.listIds());\n const compIds = ComponentIdList.fromArray(ids);\n const componentsFromModel = await this.getModelComps(ids);\n const compsDuringMerge = this.byDuringMergeState();\n const comps = componentsFromModel\n .filter((c) => compIds.hasWithoutVersion(c.toComponentId()))\n .filter((c) => !compsDuringMerge.hasWithoutVersion(c.toComponentId()))\n .filter((c) => c.isHeadSnap());\n return comps.map((c) => c.toComponentIdWithHead());\n }\n\n bySoftTagged(withinIds?: ComponentID[]): ComponentID[] {\n const withCompIds = ComponentIdList.fromArray(withinIds || []);\n const all = this.workspace.consumer.bitMap.components.filter((c) => c.nextVersion).map((c) => c.id);\n return withinIds ? all.filter((id) => withCompIds.hasWithoutVersion(id)) : all;\n }\n\n private async getModelComps(ids: ComponentID[]): Promise<ModelComponent[]> {\n const comps = await Promise.all(ids.map((id) => this.workspace.scope.getBitObjectModelComponent(id, false)));\n return compact(comps);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare type ConflictPerId = {
1
+ type ConflictPerId = {
2
2
  [compIdWithoutVersion: string]: string;
3
3
  };
4
4
  export declare class MergeConflictFile {
@@ -48,8 +48,7 @@ class MergeConflictFile {
48
48
  this.conflictPerId[id] = conflict;
49
49
  }
50
50
  removeConflict(id) {
51
- var _this$conflictPerId;
52
- (_this$conflictPerId = this.conflictPerId) === null || _this$conflictPerId === void 0 || delete _this$conflictPerId[id];
51
+ delete this.conflictPerId?.[id];
53
52
  }
54
53
  async getConflict(id) {
55
54
  await this.loadIfNeeded();
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_path","_interopRequireDefault","_fsExtra","_mergeConfigConflict","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","idPrefix","idDivider","repeat","MergeConflictFile","constructor","workspacePath","addConflict","id","conflict","conflictPerId","removeConflict","_this$conflictPerId","getConflict","loadIfNeeded","Error","getConflictAssumeIsLoaded","getConflictParsed","configMergeContent","undefined","JSON","parse","err","stringHasConflictMarker","MergeConfigConflict","getPath","message","hasConflict","Boolean","keys","length","path","join","MergeConfigFilename","fileContent","getFileContentIfExists","parsedConflict","parseConflict","write","afterFormat","formatConflicts","fs","writeFile","delete","remove","title","conflicts","map","str","includes","split","filter","line","startsWith","forEach","conflictItem","conflictItemSplit","rawId","conflictStr","trim","filePath","readFile","code","exports"],"sources":["merge-conflict-file.ts"],"sourcesContent":["import { MergeConfigFilename } from '@teambit/legacy/dist/constants';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MergeConfigConflict } from './exceptions/merge-config-conflict';\n\nconst idPrefix = `[*]`;\nconst idDivider = '-'.repeat(80);\ntype ConflictPerId = { [compIdWithoutVersion: string]: string };\n\nexport class MergeConflictFile {\n conflictPerId: ConflictPerId | undefined;\n constructor(private workspacePath: string) {}\n\n addConflict(id: string, conflict: string) {\n if (!this.conflictPerId) this.conflictPerId = {};\n this.conflictPerId[id] = conflict;\n }\n\n removeConflict(id: string) {\n delete this.conflictPerId?.[id];\n }\n\n async getConflict(id: string): Promise<string | undefined> {\n await this.loadIfNeeded();\n if (!this.conflictPerId) throw new Error(`this.conflictPerId must be instantiated after load`);\n return this.conflictPerId[id];\n }\n\n getConflictAssumeIsLoaded(id: string): string | undefined {\n if (!this.conflictPerId)\n throw new Error(`MergeConflictFile was not loaded yet, please load it before calling this function`);\n return this.conflictPerId[id];\n }\n\n getConflictParsed(id: string): Record<string, any> | undefined {\n const configMergeContent = this.getConflictAssumeIsLoaded(id);\n if (!configMergeContent) return undefined;\n try {\n return JSON.parse(configMergeContent);\n } catch (err: any) {\n if (this.stringHasConflictMarker(configMergeContent)) {\n throw new MergeConfigConflict(this.getPath());\n }\n throw new Error(`unable to parse the merge-conflict entry for ${id} as the JSON is invalid. err: ${err.message}`);\n }\n }\n\n hasConflict(): boolean {\n return Boolean(this.conflictPerId && Object.keys(this.conflictPerId).length);\n }\n\n getPath() {\n return path.join(this.workspacePath, MergeConfigFilename);\n }\n\n async loadIfNeeded() {\n if (this.conflictPerId) return; // already loaded\n const fileContent = await this.getFileContentIfExists();\n if (!fileContent) {\n this.conflictPerId = {}; // to indicate that it's loaded\n return;\n }\n const parsedConflict = this.parseConflict(fileContent);\n this.conflictPerId = parsedConflict;\n }\n\n async write() {\n if (!this.hasConflict()) return;\n const afterFormat = this.formatConflicts();\n await fs.writeFile(this.getPath(), afterFormat);\n }\n\n async delete() {\n await fs.remove(this.getPath());\n }\n\n private formatConflicts(): string {\n const conflictPerId = this.conflictPerId;\n if (!conflictPerId) throw new Error('conflictPerId is not populated');\n const title = `# Resolve configuration conflicts per component and make sure the Component ID remain in place`;\n const conflicts = Object.keys(conflictPerId)\n .map((id) => {\n const conflict = conflictPerId[id];\n return `${idDivider}\n${idPrefix} ${id}\n${idDivider}\n${conflict}`;\n })\n .join('\\n\\n');\n return `${title}\\n\\n${conflicts}`;\n }\n\n private stringHasConflictMarker(str: string): boolean {\n return str.includes('<<<<<<<') || str.includes('>>>>>>>');\n }\n\n private parseConflict(conflict: string): ConflictPerId {\n // remove irrelevant lines\n conflict = conflict\n .split('\\n')\n .filter((line) => line !== idDivider && !line.startsWith('#'))\n .join('\\n');\n // split by id\n const conflictPerId: ConflictPerId = {};\n const split = conflict.split(idPrefix);\n split.forEach((conflictItem) => {\n const conflictItemSplit = conflictItem.split('\\n');\n const [rawId, ...conflictStr] = conflictItemSplit;\n const id = rawId.trim();\n if (!id) return; // first line has it empty\n conflictPerId[id] = conflictStr.join('\\n');\n });\n return conflictPerId;\n }\n\n private async getFileContentIfExists(): Promise<string | undefined> {\n const filePath = this.getPath();\n let fileContent: string;\n try {\n fileContent = await fs.readFile(filePath, 'utf-8');\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n return undefined;\n }\n throw err;\n }\n return fileContent;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","data","require","_path","_interopRequireDefault","_fsExtra","_mergeConfigConflict","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","idPrefix","idDivider","repeat","MergeConflictFile","constructor","workspacePath","addConflict","id","conflict","conflictPerId","removeConflict","getConflict","loadIfNeeded","Error","getConflictAssumeIsLoaded","getConflictParsed","configMergeContent","undefined","JSON","parse","err","stringHasConflictMarker","MergeConfigConflict","getPath","message","hasConflict","Boolean","keys","length","path","join","MergeConfigFilename","fileContent","getFileContentIfExists","parsedConflict","parseConflict","write","afterFormat","formatConflicts","fs","writeFile","delete","remove","title","conflicts","map","str","includes","split","filter","line","startsWith","forEach","conflictItem","conflictItemSplit","rawId","conflictStr","trim","filePath","readFile","code","exports"],"sources":["merge-conflict-file.ts"],"sourcesContent":["import { MergeConfigFilename } from '@teambit/legacy/dist/constants';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { MergeConfigConflict } from './exceptions/merge-config-conflict';\n\nconst idPrefix = `[*]`;\nconst idDivider = '-'.repeat(80);\ntype ConflictPerId = { [compIdWithoutVersion: string]: string };\n\nexport class MergeConflictFile {\n conflictPerId: ConflictPerId | undefined;\n constructor(private workspacePath: string) {}\n\n addConflict(id: string, conflict: string) {\n if (!this.conflictPerId) this.conflictPerId = {};\n this.conflictPerId[id] = conflict;\n }\n\n removeConflict(id: string) {\n delete this.conflictPerId?.[id];\n }\n\n async getConflict(id: string): Promise<string | undefined> {\n await this.loadIfNeeded();\n if (!this.conflictPerId) throw new Error(`this.conflictPerId must be instantiated after load`);\n return this.conflictPerId[id];\n }\n\n getConflictAssumeIsLoaded(id: string): string | undefined {\n if (!this.conflictPerId)\n throw new Error(`MergeConflictFile was not loaded yet, please load it before calling this function`);\n return this.conflictPerId[id];\n }\n\n getConflictParsed(id: string): Record<string, any> | undefined {\n const configMergeContent = this.getConflictAssumeIsLoaded(id);\n if (!configMergeContent) return undefined;\n try {\n return JSON.parse(configMergeContent);\n } catch (err: any) {\n if (this.stringHasConflictMarker(configMergeContent)) {\n throw new MergeConfigConflict(this.getPath());\n }\n throw new Error(`unable to parse the merge-conflict entry for ${id} as the JSON is invalid. err: ${err.message}`);\n }\n }\n\n hasConflict(): boolean {\n return Boolean(this.conflictPerId && Object.keys(this.conflictPerId).length);\n }\n\n getPath() {\n return path.join(this.workspacePath, MergeConfigFilename);\n }\n\n async loadIfNeeded() {\n if (this.conflictPerId) return; // already loaded\n const fileContent = await this.getFileContentIfExists();\n if (!fileContent) {\n this.conflictPerId = {}; // to indicate that it's loaded\n return;\n }\n const parsedConflict = this.parseConflict(fileContent);\n this.conflictPerId = parsedConflict;\n }\n\n async write() {\n if (!this.hasConflict()) return;\n const afterFormat = this.formatConflicts();\n await fs.writeFile(this.getPath(), afterFormat);\n }\n\n async delete() {\n await fs.remove(this.getPath());\n }\n\n private formatConflicts(): string {\n const conflictPerId = this.conflictPerId;\n if (!conflictPerId) throw new Error('conflictPerId is not populated');\n const title = `# Resolve configuration conflicts per component and make sure the Component ID remain in place`;\n const conflicts = Object.keys(conflictPerId)\n .map((id) => {\n const conflict = conflictPerId[id];\n return `${idDivider}\n${idPrefix} ${id}\n${idDivider}\n${conflict}`;\n })\n .join('\\n\\n');\n return `${title}\\n\\n${conflicts}`;\n }\n\n private stringHasConflictMarker(str: string): boolean {\n return str.includes('<<<<<<<') || str.includes('>>>>>>>');\n }\n\n private parseConflict(conflict: string): ConflictPerId {\n // remove irrelevant lines\n conflict = conflict\n .split('\\n')\n .filter((line) => line !== idDivider && !line.startsWith('#'))\n .join('\\n');\n // split by id\n const conflictPerId: ConflictPerId = {};\n const split = conflict.split(idPrefix);\n split.forEach((conflictItem) => {\n const conflictItemSplit = conflictItem.split('\\n');\n const [rawId, ...conflictStr] = conflictItemSplit;\n const id = rawId.trim();\n if (!id) return; // first line has it empty\n conflictPerId[id] = conflictStr.join('\\n');\n });\n return conflictPerId;\n }\n\n private async getFileContentIfExists(): Promise<string | undefined> {\n const filePath = this.getPath();\n let fileContent: string;\n try {\n fileContent = await fs.readFile(filePath, 'utf-8');\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n return undefined;\n }\n throw err;\n }\n return fileContent;\n }\n}\n"],"mappings":"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"}
@@ -2,15 +2,15 @@ import { Component, ComponentID, AspectData } from '@teambit/component';
2
2
  import { ComponentLoadOptions } from '@teambit/legacy/dist/consumer/component/component-loader';
3
3
  import type { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';
4
4
  import { WatchOptions } from '@teambit/watcher';
5
- export declare type SerializableResults = {
5
+ export type SerializableResults = {
6
6
  results: any;
7
7
  toString: () => string;
8
8
  };
9
- export declare type OnComponentChange = (component: Component, files: PathOsBasedAbsolute[], removedFiles: PathOsBasedAbsolute[], watchOpts: WatchOptions) => Promise<SerializableResults | void>;
10
- export declare type OnComponentAdd = (component: Component, files: string[], watchOpts: WatchOptions) => Promise<SerializableResults | void>;
11
- export declare type OnComponentRemove = (componentId: ComponentID) => Promise<SerializableResults>;
12
- export declare type OnComponentEventResult = {
9
+ export type OnComponentChange = (component: Component, files: PathOsBasedAbsolute[], removedFiles: PathOsBasedAbsolute[], watchOpts: WatchOptions) => Promise<SerializableResults | void>;
10
+ export type OnComponentAdd = (component: Component, files: string[], watchOpts: WatchOptions) => Promise<SerializableResults | void>;
11
+ export type OnComponentRemove = (componentId: ComponentID) => Promise<SerializableResults>;
12
+ export type OnComponentEventResult = {
13
13
  extensionId: string;
14
14
  results: SerializableResults;
15
15
  };
16
- export declare type OnComponentLoad = (component: Component, loadOpts?: ComponentLoadOptions) => Promise<AspectData | undefined>;
16
+ export type OnComponentLoad = (component: Component, loadOpts?: ComponentLoadOptions) => Promise<AspectData | undefined>;
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.107/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.107/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.108/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.workspace_workspace@1.0.108/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -8,7 +8,7 @@ export declare class ScopeSetCmd implements Command {
8
8
  name: string;
9
9
  description: string;
10
10
  }[];
11
- options: never[];
11
+ options: any[];
12
12
  group: string;
13
13
  extendedDescription: string;
14
14
  constructor(workspace: Workspace);
@@ -1,7 +1,7 @@
1
1
  import { ComponentModel } from '@teambit/component';
2
2
  import { ComponentID } from '@teambit/component-id';
3
3
  import { Workspace } from './workspace-model';
4
- declare type UseWorkspaceOptions = {
4
+ type UseWorkspaceOptions = {
5
5
  onComponentAdded?: (component: ComponentModel[]) => void;
6
6
  onComponentUpdated?: (component: ComponentModel[]) => void;
7
7
  onComponentRemoved?: (compId: ComponentID[]) => void;
@@ -10,23 +10,23 @@ export declare function useWorkspace(options?: UseWorkspaceOptions): {
10
10
  client: import("@apollo/client").ApolloClient<any>;
11
11
  observable: import("@apollo/client").ObservableQuery<any, import("@apollo/client").OperationVariables>;
12
12
  previousData?: any;
13
- error?: import("@apollo/client").ApolloError | undefined;
13
+ error?: import("@apollo/client").ApolloError;
14
14
  loading: boolean;
15
15
  networkStatus: import("@apollo/client").NetworkStatus;
16
16
  called: boolean;
17
- variables: import("@apollo/client").OperationVariables | undefined;
17
+ variables: import("@apollo/client").OperationVariables;
18
18
  startPolling: (pollInterval: number) => void;
19
19
  stopPolling: () => void;
20
20
  updateQuery: <TVars = import("@apollo/client").OperationVariables>(mapFn: (previousQueryResult: any, options: Pick<import("@apollo/client").WatchQueryOptions<TVars, any>, "variables">) => any) => void;
21
- refetch: (variables?: Partial<import("@apollo/client").OperationVariables> | undefined) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
22
- reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("@apollo/client").OperationVariables, any>> | undefined, newNetworkStatus?: import("@apollo/client").NetworkStatus | undefined) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
21
+ refetch: (variables?: Partial<import("@apollo/client").OperationVariables>) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
22
+ reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<import("@apollo/client").OperationVariables, any>>, newNetworkStatus?: import("@apollo/client").NetworkStatus) => Promise<import("@apollo/client").ApolloQueryResult<any>>;
23
23
  fetchMore: <TFetchData = any, TFetchVars = import("@apollo/client").OperationVariables>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & {
24
- updateQuery?: ((previousQueryResult: any, options: {
24
+ updateQuery?: (previousQueryResult: any, options: {
25
25
  fetchMoreResult: TFetchData;
26
26
  variables: TFetchVars;
27
- }) => any) | undefined;
27
+ }) => any;
28
28
  }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>;
29
- workspace: Workspace | undefined;
29
+ workspace: Workspace;
30
30
  subscribeToMore: <TSubscriptionData = any, TSubscriptionVariables = import("@apollo/client").OperationVariables>(options: import("@apollo/client").SubscribeToMoreOptions<any, TSubscriptionVariables, TSubscriptionData>) => () => void;
31
31
  };
32
32
  export {};
@@ -160,9 +160,8 @@ function useWorkspace(options = {}) {
160
160
  updateQuery: (prev, {
161
161
  subscriptionData
162
162
  }) => {
163
- var _update$componentAdde;
164
163
  const update = subscriptionData.data;
165
- const addedComponent = update === null || update === void 0 || (_update$componentAdde = update.componentAdded) === null || _update$componentAdde === void 0 ? void 0 : _update$componentAdde.component;
164
+ const addedComponent = update?.componentAdded?.component;
166
165
  if (!addedComponent) return prev;
167
166
  const componentExists = prev.workspace.components.find(component => _componentId().ComponentID.isEqualObj(component.id, addedComponent.id, {
168
167
  ignoreVersion: true
@@ -170,10 +169,7 @@ function useWorkspace(options = {}) {
170
169
  if (componentExists) return prev;
171
170
 
172
171
  // side effect - trigger observers
173
- setTimeout(() => {
174
- var _optionsRef$current$o, _optionsRef$current;
175
- return (_optionsRef$current$o = (_optionsRef$current = optionsRef.current).onComponentAdded) === null || _optionsRef$current$o === void 0 ? void 0 : _optionsRef$current$o.call(_optionsRef$current, [_component().ComponentModel.from(addedComponent)]);
176
- });
172
+ setTimeout(() => optionsRef.current.onComponentAdded?.([_component().ComponentModel.from(addedComponent)]));
177
173
  return _objectSpread(_objectSpread({}, prev), {}, {
178
174
  workspace: _objectSpread(_objectSpread({}, prev.workspace), {}, {
179
175
  components: [...prev.workspace.components, addedComponent]
@@ -190,10 +186,7 @@ function useWorkspace(options = {}) {
190
186
  if (!update) return prev;
191
187
  const updatedComponent = update.componentChanged.component;
192
188
  // side effect - trigger observers
193
- setTimeout(() => {
194
- var _optionsRef$current$o2, _optionsRef$current2;
195
- return (_optionsRef$current$o2 = (_optionsRef$current2 = optionsRef.current).onComponentUpdated) === null || _optionsRef$current$o2 === void 0 ? void 0 : _optionsRef$current$o2.call(_optionsRef$current2, [_component().ComponentModel.from(updatedComponent)]);
196
- });
189
+ setTimeout(() => optionsRef.current.onComponentUpdated?.([_component().ComponentModel.from(updatedComponent)]));
197
190
  return _objectSpread(_objectSpread({}, prev), {}, {
198
191
  workspace: _objectSpread(_objectSpread({}, prev.workspace), {}, {
199
192
  components: prev.workspace.components.map(component => component.id.name === updatedComponent.id.name ? updatedComponent : component)
@@ -206,15 +199,11 @@ function useWorkspace(options = {}) {
206
199
  updateQuery: (prev, {
207
200
  subscriptionData
208
201
  }) => {
209
- var _subscriptionData$dat;
210
- const idsToRemove = (_subscriptionData$dat = subscriptionData.data) === null || _subscriptionData$dat === void 0 || (_subscriptionData$dat = _subscriptionData$dat.componentRemoved) === null || _subscriptionData$dat === void 0 ? void 0 : _subscriptionData$dat.componentIds;
202
+ const idsToRemove = subscriptionData.data?.componentRemoved?.componentIds;
211
203
  if (!idsToRemove || idsToRemove.length === 0) return prev;
212
204
 
213
205
  // side effect - trigger observers
214
- setTimeout(() => {
215
- var _optionsRef$current$o3, _optionsRef$current3;
216
- return (_optionsRef$current$o3 = (_optionsRef$current3 = optionsRef.current).onComponentRemoved) === null || _optionsRef$current$o3 === void 0 ? void 0 : _optionsRef$current$o3.call(_optionsRef$current3, idsToRemove.map(id => _componentId().ComponentID.fromObject(id)));
217
- });
206
+ setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map(id => _componentId().ComponentID.fromObject(id))));
218
207
  return _objectSpread(_objectSpread({}, prev), {}, {
219
208
  workspace: _objectSpread(_objectSpread({}, prev.workspace), {}, {
220
209
  components: prev.workspace.components.filter(component => idsToRemove.every(id => !_componentId().ComponentID.isEqualObj(id, component.id)))
@@ -232,8 +221,8 @@ function useWorkspace(options = {}) {
232
221
  };
233
222
  }, [optionsRef]);
234
223
  const workspace = (0, _react().useMemo)(() => {
235
- return data !== null && data !== void 0 && data.workspace ? _workspaceModel().Workspace.from(data === null || data === void 0 ? void 0 : data.workspace) : undefined;
236
- }, [data === null || data === void 0 ? void 0 : data.workspace]);
224
+ return data?.workspace ? _workspaceModel().Workspace.from(data?.workspace) : undefined;
225
+ }, [data?.workspace]);
237
226
  return _objectSpread({
238
227
  workspace,
239
228
  subscribeToMore
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","require","_component","_latest","_interopRequireDefault","_uiFoundationUiHooks","_client","_componentId","_workspaceModel","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","sourceKeys","wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","_useDataQuery","useDataQuery","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","_update$componentAdde","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","_optionsRef$current$o","_optionsRef$current","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","_optionsRef$current$o2","_optionsRef$current2","onComponentUpdated","map","name","unSubCompRemoved","_subscriptionData$dat","idsToRemove","componentRemoved","componentIds","_optionsRef$current$o3","_optionsRef$current3","onComponentRemoved","fromObject","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n preview {\n isScaling\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","data","require","_component","_latest","_interopRequireDefault","_uiFoundationUiHooks","_client","_componentId","_workspaceModel","_excluded","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","sourceKeys","wcComponentFields","gql","WORKSPACE","COMPONENT_SUBSCRIPTION_ADDED","COMPONENT_SUBSCRIPTION_CHANGED","COMPONENT_SUBSCRIPTION_REMOVED","useWorkspace","options","_useDataQuery","useDataQuery","subscribeToMore","rest","optionsRef","useLatest","useEffect","unSubCompAddition","document","updateQuery","prev","subscriptionData","update","addedComponent","componentAdded","component","componentExists","workspace","components","find","ComponentID","isEqualObj","id","ignoreVersion","setTimeout","current","onComponentAdded","ComponentModel","from","unSubCompChange","updatedComponent","componentChanged","onComponentUpdated","map","name","unSubCompRemoved","idsToRemove","componentRemoved","componentIds","onComponentRemoved","fromObject","every","useMemo","Workspace","undefined"],"sources":["use-workspace.ts"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ComponentModel } from '@teambit/component';\nimport useLatest from '@react-hook/latest';\nimport { useDataQuery } from '@teambit/ui-foundation.ui.hooks.use-data-query';\nimport { gql } from '@apollo/client';\nimport { ComponentID, ComponentIdObj } from '@teambit/component-id';\n\nimport { Workspace } from './workspace-model';\n\ntype UseWorkspaceOptions = {\n onComponentAdded?: (component: ComponentModel[]) => void;\n onComponentUpdated?: (component: ComponentModel[]) => void;\n onComponentRemoved?: (compId: ComponentID[]) => void;\n};\ntype RawComponent = { id: ComponentIdObj };\n\nconst wcComponentFields = gql`\n fragment wcComponentFields on Component {\n id {\n name\n version\n scope\n }\n compositions {\n identifier\n }\n description\n issuesCount\n status {\n isOutdated\n isNew\n isInScope\n isStaged\n modifyInfo {\n hasModifiedFiles\n hasModifiedDependencies\n }\n isDeleted\n }\n preview {\n isScaling\n }\n deprecation {\n isDeprecate\n newId\n }\n server {\n env\n url\n }\n env {\n id\n icon\n }\n }\n`;\n\nconst WORKSPACE = gql`\n query workspace {\n workspace {\n name\n path\n icon\n components {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_ADDED = gql`\n subscription OnComponentAdded {\n componentAdded {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_CHANGED = gql`\n subscription OnComponentChanged {\n componentChanged {\n component {\n ...wcComponentFields\n }\n }\n }\n ${wcComponentFields}\n`;\n\nconst COMPONENT_SUBSCRIPTION_REMOVED = gql`\n subscription OnComponentRemoved {\n componentRemoved {\n componentIds {\n name\n version\n scope\n }\n }\n }\n`;\n\nexport function useWorkspace(options: UseWorkspaceOptions = {}) {\n const { data, subscribeToMore, ...rest } = useDataQuery(WORKSPACE);\n const optionsRef = useLatest(options);\n\n useEffect(() => {\n const unSubCompAddition = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_ADDED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n const addedComponent = update?.componentAdded?.component;\n if (!addedComponent) return prev;\n\n const componentExists = prev.workspace.components.find((component: any) =>\n ComponentID.isEqualObj(component.id, addedComponent.id, { ignoreVersion: true })\n );\n if (componentExists) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentAdded?.([ComponentModel.from(addedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: [...prev.workspace.components, addedComponent],\n },\n };\n },\n });\n\n const unSubCompChange = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_CHANGED,\n updateQuery: (prev, { subscriptionData }) => {\n const update = subscriptionData.data;\n if (!update) return prev;\n\n const updatedComponent = update.componentChanged.component;\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentUpdated?.([ComponentModel.from(updatedComponent)]));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.map((component) =>\n component.id.name === updatedComponent.id.name ? updatedComponent : component\n ),\n },\n };\n },\n });\n\n const unSubCompRemoved = subscribeToMore({\n document: COMPONENT_SUBSCRIPTION_REMOVED,\n updateQuery: (prev, { subscriptionData }) => {\n const idsToRemove: ComponentIdObj[] | undefined = subscriptionData.data?.componentRemoved?.componentIds;\n if (!idsToRemove || idsToRemove.length === 0) return prev;\n\n // side effect - trigger observers\n setTimeout(() => optionsRef.current.onComponentRemoved?.(idsToRemove.map((id) => ComponentID.fromObject(id))));\n\n return {\n ...prev,\n workspace: {\n ...prev.workspace,\n components: prev.workspace.components.filter((component: RawComponent) =>\n idsToRemove.every((id) => !ComponentID.isEqualObj(id, component.id))\n ),\n },\n };\n },\n });\n\n // TODO - sub to component removal\n\n return () => {\n unSubCompAddition();\n unSubCompChange();\n unSubCompRemoved();\n };\n }, [optionsRef]);\n\n const workspace = useMemo(() => {\n return data?.workspace ? Workspace.from(data?.workspace) : undefined;\n }, [data?.workspace]);\n\n return {\n workspace,\n subscribeToMore,\n ...rest,\n };\n}\n"],"mappings":"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"}
@@ -3,13 +3,13 @@ import { ComponentDescriptor } from '@teambit/component-descriptor';
3
3
  import { DeprecationInfo } from '@teambit/deprecation';
4
4
  import { Descriptor } from '@teambit/envs';
5
5
  import { ComponentStatus } from '../../workspace-component/component-status';
6
- export declare type WorkspaceModelComponent = {
6
+ export type WorkspaceModelComponent = {
7
7
  id: ComponentID;
8
8
  status: ComponentStatus;
9
9
  deprecation: DeprecationInfo;
10
10
  env: Descriptor;
11
11
  };
12
- export declare type WorkspaceProps = {
12
+ export type WorkspaceProps = {
13
13
  name: string;
14
14
  path: string;
15
15
  components: ComponentModelProps[];
@@ -60,7 +60,7 @@ export declare class Workspace {
60
60
  /**
61
61
  * return a component from the workspace.
62
62
  */
63
- getComponent(id: ComponentID): ComponentModel | undefined;
63
+ getComponent(id: ComponentID): ComponentModel;
64
64
  static from({ name, path, components, icon }: WorkspaceProps): Workspace;
65
65
  static empty(): Workspace;
66
66
  }
@@ -1,2 +1,2 @@
1
- import React from 'react';
2
- export declare function WorkspaceOverview(): React.JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare function WorkspaceOverview(): JSX.Element;
@@ -60,8 +60,7 @@ function WorkspaceOverview() {
60
60
  return /*#__PURE__*/_react().default.createElement("div", {
61
61
  className: _workspaceOverviewModule().default.container
62
62
  }, /*#__PURE__*/_react().default.createElement(_explorerUiGallery().ComponentGrid, null, components.map((component, index) => {
63
- var _component$deprecatio;
64
- if ((_component$deprecatio = component.deprecation) !== null && _component$deprecatio !== void 0 && _component$deprecatio.isDeprecate) return null;
63
+ if (component.deprecation?.isDeprecate) return null;
65
64
  return /*#__PURE__*/_react().default.createElement(_workspaceUi2().WorkspaceComponentCard, {
66
65
  key: index,
67
66
  component: component