@teambit/workspace 0.0.881 → 0.0.883

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 (108) hide show
  1. package/dist/bit-map.js +10 -51
  2. package/dist/bit-map.js.map +1 -1
  3. package/dist/build-graph-from-fs.js +1 -53
  4. package/dist/build-graph-from-fs.js.map +1 -1
  5. package/dist/capsule.cmd.js +2 -34
  6. package/dist/capsule.cmd.js.map +1 -1
  7. package/dist/component-config-file/component-config-file.js +2 -60
  8. package/dist/component-config-file/component-config-file.js.map +1 -1
  9. package/dist/component-config-file/exceptions/already-exists.js +0 -6
  10. package/dist/component-config-file/exceptions/already-exists.js.map +1 -1
  11. package/dist/component-config-file/exceptions/index.js +0 -3
  12. package/dist/component-config-file/exceptions/index.js.map +1 -1
  13. package/dist/component-config-file/index.js +0 -6
  14. package/dist/component-config-file/index.js.map +1 -1
  15. package/dist/component-tree.widget.js +0 -18
  16. package/dist/component-tree.widget.js.map +1 -1
  17. package/dist/constants.js.map +1 -1
  18. package/dist/eject-conf.cmd.js +0 -23
  19. package/dist/eject-conf.cmd.js.map +1 -1
  20. package/dist/envs-subcommands/envs-replace.cmd.js +0 -13
  21. package/dist/envs-subcommands/envs-replace.cmd.js.map +1 -1
  22. package/dist/envs-subcommands/envs-set.cmd.js +0 -16
  23. package/dist/envs-subcommands/envs-set.cmd.js.map +1 -1
  24. package/dist/envs-subcommands/envs-unset.cmd.js +0 -18
  25. package/dist/envs-subcommands/envs-unset.cmd.js.map +1 -1
  26. package/dist/events/index.js +0 -6
  27. package/dist/events/index.js.map +1 -1
  28. package/dist/events/on-component-add-event.js +1 -12
  29. package/dist/events/on-component-add-event.js.map +1 -1
  30. package/dist/events/on-component-change-event.js +1 -12
  31. package/dist/events/on-component-change-event.js.map +1 -1
  32. package/dist/events/on-component-removed-event.js +1 -12
  33. package/dist/events/on-component-removed-event.js.map +1 -1
  34. package/dist/exceptions/incorrect-env-aspect.js +0 -6
  35. package/dist/exceptions/incorrect-env-aspect.js.map +1 -1
  36. package/dist/index.js +0 -19
  37. package/dist/index.js.map +1 -1
  38. package/dist/list.cmd.js +2 -15
  39. package/dist/list.cmd.js.map +1 -1
  40. package/dist/pattern.cmd.js +0 -16
  41. package/dist/pattern.cmd.js.map +1 -1
  42. package/dist/scope-subcommands/scope-set.cmd.js +0 -17
  43. package/dist/scope-subcommands/scope-set.cmd.js.map +1 -1
  44. package/dist/ui/index.js +0 -3
  45. package/dist/ui/index.js.map +1 -1
  46. package/dist/ui/workspace/default-component.js.map +1 -1
  47. package/dist/ui/workspace/index.js +0 -2
  48. package/dist/ui/workspace/index.js.map +1 -1
  49. package/dist/ui/workspace/use-workspace.js +14 -49
  50. package/dist/ui/workspace/use-workspace.js.map +1 -1
  51. package/dist/ui/workspace/workspace-context.js +0 -7
  52. package/dist/ui/workspace/workspace-context.js.map +1 -1
  53. package/dist/ui/workspace/workspace-model.js +2 -14
  54. package/dist/ui/workspace/workspace-model.js.map +1 -1
  55. package/dist/ui/workspace/workspace-overview/index.js +0 -3
  56. package/dist/ui/workspace/workspace-overview/index.js.map +1 -1
  57. package/dist/ui/workspace/workspace-overview/workspace-overview.js +0 -23
  58. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  59. package/dist/ui/workspace/workspace-provider.js +0 -8
  60. package/dist/ui/workspace/workspace-provider.js.map +1 -1
  61. package/dist/ui/workspace/workspace.js +2 -52
  62. package/dist/ui/workspace/workspace.js.map +1 -1
  63. package/dist/use.cmd.js +0 -13
  64. package/dist/use.cmd.js.map +1 -1
  65. package/dist/watch/check-types.js +0 -1
  66. package/dist/watch/check-types.js.map +1 -1
  67. package/dist/watch/output-formatter.js +1 -12
  68. package/dist/watch/output-formatter.js.map +1 -1
  69. package/dist/watch/watch-queue.js +0 -13
  70. package/dist/watch/watch-queue.js.map +1 -1
  71. package/dist/watch/watch.cmd.js +6 -41
  72. package/dist/watch/watch.cmd.js.map +1 -1
  73. package/dist/watch/watcher.js +13 -133
  74. package/dist/watch/watcher.js.map +1 -1
  75. package/dist/workspace-component/component-status.js +0 -4
  76. package/dist/workspace-component/component-status.js.map +1 -1
  77. package/dist/workspace-component/index.js +0 -6
  78. package/dist/workspace-component/index.js.map +1 -1
  79. package/dist/workspace-component/workspace-component-loader.js +31 -116
  80. package/dist/workspace-component/workspace-component-loader.js.map +1 -1
  81. package/dist/workspace-component/workspace-component.js +1 -11
  82. package/dist/workspace-component/workspace-component.js.map +1 -1
  83. package/dist/workspace-section.js +2 -0
  84. package/dist/workspace-section.js.map +1 -1
  85. package/dist/workspace.aspect.js +0 -5
  86. package/dist/workspace.aspect.js.map +1 -1
  87. package/dist/workspace.composition.js +0 -6
  88. package/dist/workspace.composition.js.map +1 -1
  89. package/dist/workspace.d.ts +1 -0
  90. package/dist/workspace.graphql.js +0 -12
  91. package/dist/workspace.graphql.js.map +1 -1
  92. package/dist/workspace.js +141 -545
  93. package/dist/workspace.js.map +1 -1
  94. package/dist/workspace.main.runtime.js +0 -55
  95. package/dist/workspace.main.runtime.js.map +1 -1
  96. package/dist/workspace.provider.js +8 -77
  97. package/dist/workspace.provider.js.map +1 -1
  98. package/dist/workspace.ui-root.js +3 -17
  99. package/dist/workspace.ui-root.js.map +1 -1
  100. package/dist/workspace.ui.drawer.js +2 -24
  101. package/dist/workspace.ui.drawer.js.map +1 -1
  102. package/dist/workspace.ui.runtime.js +0 -75
  103. package/dist/workspace.ui.runtime.js.map +1 -1
  104. package/package-tar/teambit-workspace-0.0.883.tgz +0 -0
  105. package/package.json +18 -18
  106. package/{preview-1666409808293.js → preview-1666582798766.js} +2 -2
  107. package/workspace-component/workspace-component-loader.ts +13 -3
  108. package/package-tar/teambit-workspace-0.0.881.tgz +0 -0
@@ -1,40 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.iterator.js");
6
-
7
5
  require("core-js/modules/es.promise.js");
8
-
9
6
  Object.defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
9
  exports.CapsuleListCmd = exports.CapsuleDeleteCmd = exports.CapsuleCreateCmd = exports.CapsuleCmd = void 0;
13
-
14
10
  function _defineProperty2() {
15
11
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
-
17
12
  _defineProperty2 = function () {
18
13
  return data;
19
14
  };
20
-
21
15
  return data;
22
16
  }
23
-
24
17
  function _chalk() {
25
18
  const data = _interopRequireDefault(require("chalk"));
26
-
27
19
  _chalk = function () {
28
20
  return data;
29
21
  };
30
-
31
22
  return data;
32
23
  }
33
-
34
24
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
-
36
25
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
-
38
26
  class CapsuleCreateCmd {
39
27
  constructor(workspace, isolator) {
40
28
  this.workspace = workspace;
@@ -45,7 +33,6 @@ class CapsuleCreateCmd {
45
33
  (0, _defineProperty2().default)(this, "alias", '');
46
34
  (0, _defineProperty2().default)(this, "options", [['b', 'base-dir <name>', 'set base dir of all capsules (hashed to create the base dir inside the root dir - host path by default)'], ['r', 'root-base-dir <name>', 'set root base dir of all capsules (absolute path to use as root dir)'], ['a', 'always-new', 'create new environment for capsule'], ['s', 'seeders-only', 'create capsules for the seeders only (not for the entire graph)'], ['i', 'id <name>', 'reuse capsule of certain name'], ['j', 'json', 'json format'], ['d', 'install-packages', 'install packages by the package-manager'], ['p', 'package-manager <name>', 'npm, yarn or pnpm, default to npm']]);
47
35
  }
48
-
49
36
  async create([componentIds = []], {
50
37
  baseDir,
51
38
  rootBaseDir,
@@ -72,7 +59,6 @@ class CapsuleCreateCmd {
72
59
  const capsules = network.graphCapsules;
73
60
  return capsules;
74
61
  }
75
-
76
62
  async report([componentIds], opts) {
77
63
  // @ts-ignore
78
64
  const capsules = await this.create(componentIds, opts);
@@ -80,7 +66,6 @@ class CapsuleCreateCmd {
80
66
  const title = `${capsules.length} capsule(s) were created successfully`;
81
67
  return `${_chalk().default.green(title)}\n${capsuleOutput}`;
82
68
  }
83
-
84
69
  async json([componentIds], opts) {
85
70
  // @ts-ignore
86
71
  const capsules = await this.create(componentIds, opts);
@@ -89,11 +74,8 @@ class CapsuleCreateCmd {
89
74
  path: c.path
90
75
  }));
91
76
  }
92
-
93
77
  }
94
-
95
78
  exports.CapsuleCreateCmd = CapsuleCreateCmd;
96
-
97
79
  class CapsuleListCmd {
98
80
  constructor(isolator, workspace) {
99
81
  this.isolator = isolator;
@@ -104,26 +86,23 @@ class CapsuleListCmd {
104
86
  (0, _defineProperty2().default)(this, "alias", '');
105
87
  (0, _defineProperty2().default)(this, "options", [['j', 'json', 'json format']]);
106
88
  }
107
-
108
89
  async report() {
109
90
  const list = await this.isolator.list(this.workspace.path);
110
91
  const {
111
92
  workspaceCapsulesRootDir,
112
93
  scopeAspectsCapsulesRootDir
113
- } = this.getCapsulesRootDirs(); // TODO: improve output
114
-
94
+ } = this.getCapsulesRootDirs();
95
+ // TODO: improve output
115
96
  return _chalk().default.green(`found ${_chalk().default.cyan(list.capsules.length.toString())} capsule(s) for workspace: ${_chalk().default.cyan(list.workspace)}
116
97
  workspace capsules root-dir: ${_chalk().default.cyan(workspaceCapsulesRootDir)}
117
98
  scope's aspects capsules root-dir: ${_chalk().default.cyan(scopeAspectsCapsulesRootDir)}
118
99
  use --json to get the list of all workspace capsules`);
119
100
  }
120
-
121
101
  async json() {
122
102
  const list = await this.isolator.list(this.workspace.path);
123
103
  const rootDirs = this.getCapsulesRootDirs();
124
104
  return _objectSpread(_objectSpread({}, list), rootDirs);
125
105
  }
126
-
127
106
  getCapsulesRootDirs() {
128
107
  const workspaceCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.path);
129
108
  const scopeAspectsCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.scope.getAspectCapsulePath());
@@ -132,11 +111,8 @@ use --json to get the list of all workspace capsules`);
132
111
  scopeAspectsCapsulesRootDir
133
112
  };
134
113
  }
135
-
136
114
  }
137
-
138
115
  exports.CapsuleListCmd = CapsuleListCmd;
139
-
140
116
  class CapsuleDeleteCmd {
141
117
  constructor(isolator, workspace) {
142
118
  this.isolator = isolator;
@@ -148,7 +124,6 @@ class CapsuleDeleteCmd {
148
124
  (0, _defineProperty2().default)(this, "alias", '');
149
125
  (0, _defineProperty2().default)(this, "options", [['', 'scope-aspects', 'delete scope-aspects capsules'], ['a', 'all', 'delete all capsules for all workspaces and scopes']]);
150
126
  }
151
-
152
127
  async report(args, {
153
128
  all,
154
129
  scopeAspects
@@ -158,16 +133,12 @@ class CapsuleDeleteCmd {
158
133
  if (scopeAspects) return this.workspace.scope.getAspectCapsulePath();
159
134
  return this.workspace.path;
160
135
  };
161
-
162
136
  const capsuleBaseDir = capsuleBaseDirToDelete();
163
137
  const deletedDir = await this.isolator.deleteCapsules(capsuleBaseDir);
164
138
  return _chalk().default.green(`the following capsules dir has been deleted ${_chalk().default.bold(deletedDir)}`);
165
139
  }
166
-
167
140
  }
168
-
169
141
  exports.CapsuleDeleteCmd = CapsuleDeleteCmd;
170
-
171
142
  class CapsuleCmd {
172
143
  constructor() {
173
144
  (0, _defineProperty2().default)(this, "name", 'capsule <sub-command>');
@@ -181,15 +152,12 @@ other users after publishing/exporting them.`);
181
152
  (0, _defineProperty2().default)(this, "commands", []);
182
153
  (0, _defineProperty2().default)(this, "options", []);
183
154
  }
184
-
185
155
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
186
156
  async report(args) {
187
157
  // it should never be here. Yargs throws an error before reaching this method.
188
158
  return `Please specify a sub-command`;
189
159
  }
190
-
191
160
  }
192
-
193
161
  exports.CapsuleCmd = CapsuleCmd;
194
162
 
195
163
  //# sourceMappingURL=capsule.cmd.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CapsuleCreateCmd","constructor","workspace","isolator","create","componentIds","baseDir","rootBaseDir","alwaysNew","id","installPackages","seedersOnly","Array","isArray","capsuleOptions","installOptions","includeFromNestedHosts","name","ids","resolveMultipleComponentIds","network","isolateComponents","capsules","graphCapsules","report","opts","capsuleOutput","map","capsule","chalk","bold","component","toString","path","join","title","length","green","json","c","CapsuleListCmd","list","workspaceCapsulesRootDir","scopeAspectsCapsulesRootDir","getCapsulesRootDirs","cyan","rootDirs","getCapsulesRootDir","scope","getAspectCapsulePath","CapsuleDeleteCmd","args","all","scopeAspects","capsuleBaseDirToDelete","capsuleBaseDir","deletedDir","deleteCapsules","CapsuleCmd"],"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 chalk from 'chalk';\n\nimport { Workspace } from '.';\n\ntype CreateOpts = {\n baseDir?: string;\n rootBaseDir?: string;\n alwaysNew?: boolean;\n seedersOnly?: 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 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 ['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, private isolator: IsolatorMain) {}\n\n async create(\n [componentIds = []]: [string[]],\n { baseDir, rootBaseDir, alwaysNew = false, id, installPackages = false, seedersOnly = false }: CreateOpts\n ): Promise<CapsuleList> {\n // @todo: why it is not an array?\n if (componentIds && !Array.isArray(componentIds)) componentIds = [componentIds];\n const capsuleOptions: IsolateComponentsOptions = {\n baseDir,\n rootBaseDir,\n installOptions: { installPackages },\n alwaysNew,\n seedersOnly,\n includeFromNestedHosts: true,\n name: id,\n };\n const ids = await this.workspace.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) {}\n\n async report() {\n const list = await this.isolator.list(this.workspace.path);\n const { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir } = this.getCapsulesRootDirs();\n // TODO: improve output\n return chalk.green(`found ${chalk.cyan(list.capsules.length.toString())} capsule(s) for workspace: ${chalk.cyan(\n list.workspace\n )}\nworkspace capsules root-dir: ${chalk.cyan(workspaceCapsulesRootDir)}\nscope's aspects capsules root-dir: ${chalk.cyan(scopeAspectsCapsulesRootDir)}\nuse --json to get the list of all workspace capsules`);\n }\n\n async json() {\n const list = await this.isolator.list(this.workspace.path);\n const rootDirs = this.getCapsulesRootDirs();\n return { ...list, ...rootDirs };\n }\n\n private getCapsulesRootDirs() {\n const workspaceCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.path);\n const scopeAspectsCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.scope.getAspectCapsulePath());\n\n return { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir };\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 workspace: Workspace) {}\n\n async report(args: [], { all, scopeAspects }: { all: boolean; scopeAspects: boolean }) {\n const capsuleBaseDirToDelete = (): string | null => {\n if (all) return null;\n if (scopeAspects) return this.workspace.scope.getAspectCapsulePath();\n return this.workspace.path;\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 <sub-command>';\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 = [] as CommandOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async report(args: [string]) {\n // it should never be here. Yargs throws an error before reaching this method.\n return `Please specify a sub-command`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["CapsuleCreateCmd","constructor","workspace","isolator","create","componentIds","baseDir","rootBaseDir","alwaysNew","id","installPackages","seedersOnly","Array","isArray","capsuleOptions","installOptions","includeFromNestedHosts","name","ids","resolveMultipleComponentIds","network","isolateComponents","capsules","graphCapsules","report","opts","capsuleOutput","map","capsule","chalk","bold","component","toString","path","join","title","length","green","json","c","CapsuleListCmd","list","workspaceCapsulesRootDir","scopeAspectsCapsulesRootDir","getCapsulesRootDirs","cyan","rootDirs","getCapsulesRootDir","scope","getAspectCapsulePath","CapsuleDeleteCmd","args","all","scopeAspects","capsuleBaseDirToDelete","capsuleBaseDir","deletedDir","deleteCapsules","CapsuleCmd"],"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 chalk from 'chalk';\n\nimport { Workspace } from '.';\n\ntype CreateOpts = {\n baseDir?: string;\n rootBaseDir?: string;\n alwaysNew?: boolean;\n seedersOnly?: 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 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 ['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, private isolator: IsolatorMain) {}\n\n async create(\n [componentIds = []]: [string[]],\n { baseDir, rootBaseDir, alwaysNew = false, id, installPackages = false, seedersOnly = false }: CreateOpts\n ): Promise<CapsuleList> {\n // @todo: why it is not an array?\n if (componentIds && !Array.isArray(componentIds)) componentIds = [componentIds];\n const capsuleOptions: IsolateComponentsOptions = {\n baseDir,\n rootBaseDir,\n installOptions: { installPackages },\n alwaysNew,\n seedersOnly,\n includeFromNestedHosts: true,\n name: id,\n };\n const ids = await this.workspace.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) {}\n\n async report() {\n const list = await this.isolator.list(this.workspace.path);\n const { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir } = this.getCapsulesRootDirs();\n // TODO: improve output\n return chalk.green(`found ${chalk.cyan(list.capsules.length.toString())} capsule(s) for workspace: ${chalk.cyan(\n list.workspace\n )}\nworkspace capsules root-dir: ${chalk.cyan(workspaceCapsulesRootDir)}\nscope's aspects capsules root-dir: ${chalk.cyan(scopeAspectsCapsulesRootDir)}\nuse --json to get the list of all workspace capsules`);\n }\n\n async json() {\n const list = await this.isolator.list(this.workspace.path);\n const rootDirs = this.getCapsulesRootDirs();\n return { ...list, ...rootDirs };\n }\n\n private getCapsulesRootDirs() {\n const workspaceCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.path);\n const scopeAspectsCapsulesRootDir = this.isolator.getCapsulesRootDir(this.workspace.scope.getAspectCapsulePath());\n\n return { workspaceCapsulesRootDir, scopeAspectsCapsulesRootDir };\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 workspace: Workspace) {}\n\n async report(args: [], { all, scopeAspects }: { all: boolean; scopeAspects: boolean }) {\n const capsuleBaseDirToDelete = (): string | null => {\n if (all) return null;\n if (scopeAspects) return this.workspace.scope.getAspectCapsulePath();\n return this.workspace.path;\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 <sub-command>';\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 = [] as CommandOptions;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async report(args: [string]) {\n // it should never be here. Yargs throws an error before reaching this method.\n return `Please specify a sub-command`;\n }\n}\n"],"mappings":"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"}
@@ -1,129 +1,91 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  require("core-js/modules/es.array.iterator.js");
6
-
7
5
  require("core-js/modules/es.promise.js");
8
-
9
6
  Object.defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
9
  exports.ComponentConfigFile = void 0;
13
-
14
10
  function _component() {
15
11
  const data = require("@teambit/component");
16
-
17
12
  _component = function () {
18
13
  return data;
19
14
  };
20
-
21
15
  return data;
22
16
  }
23
-
24
17
  function _constants() {
25
18
  const data = require("@teambit/legacy/dist/constants");
26
-
27
19
  _constants = function () {
28
20
  return data;
29
21
  };
30
-
31
22
  return data;
32
23
  }
33
-
34
24
  function _extensionData() {
35
25
  const data = require("@teambit/legacy/dist/consumer/config/extension-data");
36
-
37
26
  _extensionData = function () {
38
27
  return data;
39
28
  };
40
-
41
29
  return data;
42
30
  }
43
-
44
31
  function _detectIndent() {
45
32
  const data = _interopRequireDefault(require("detect-indent"));
46
-
47
33
  _detectIndent = function () {
48
34
  return data;
49
35
  };
50
-
51
36
  return data;
52
37
  }
53
-
54
38
  function _detectNewline() {
55
39
  const data = _interopRequireDefault(require("detect-newline"));
56
-
57
40
  _detectNewline = function () {
58
41
  return data;
59
42
  };
60
-
61
43
  return data;
62
44
  }
63
-
64
45
  function _fsExtra() {
65
46
  const data = _interopRequireDefault(require("fs-extra"));
66
-
67
47
  _fsExtra = function () {
68
48
  return data;
69
49
  };
70
-
71
50
  return data;
72
51
  }
73
-
74
52
  function _path() {
75
53
  const data = _interopRequireDefault(require("path"));
76
-
77
54
  _path = function () {
78
55
  return data;
79
56
  };
80
-
81
57
  return data;
82
58
  }
83
-
84
59
  function _stringifyPackage() {
85
60
  const data = _interopRequireDefault(require("stringify-package"));
86
-
87
61
  _stringifyPackage = function () {
88
62
  return data;
89
63
  };
90
-
91
64
  return data;
92
65
  }
93
-
94
66
  function _config() {
95
67
  const data = require("@teambit/legacy/dist/consumer/config");
96
-
97
68
  _config = function () {
98
69
  return data;
99
70
  };
100
-
101
71
  return data;
102
72
  }
103
-
104
73
  function _lodash() {
105
74
  const data = require("lodash");
106
-
107
75
  _lodash = function () {
108
76
  return data;
109
77
  };
110
-
111
78
  return data;
112
79
  }
113
-
114
80
  function _exceptions() {
115
81
  const data = require("./exceptions");
116
-
117
82
  _exceptions = function () {
118
83
  return data;
119
84
  };
120
-
121
85
  return data;
122
86
  }
123
-
124
87
  const DEFAULT_INDENT = 2;
125
88
  const DEFAULT_NEWLINE = '\n';
126
-
127
89
  class ComponentConfigFile {
128
90
  constructor(componentId, aspects, componentDir, propagate = false, options = {
129
91
  indent: DEFAULT_INDENT,
@@ -136,71 +98,57 @@ class ComponentConfigFile {
136
98
  this.options = options;
137
99
  this.defaultScope = defaultScope;
138
100
  }
139
-
140
101
  static async load(componentDir, aspectListFactory, outsideDefaultScope) {
141
102
  const filePath = ComponentConfigFile.composePath(componentDir);
142
103
  const isExist = await _fsExtra().default.pathExists(filePath);
143
-
144
104
  if (!isExist) {
145
105
  return undefined;
146
106
  }
147
-
148
107
  const content = await _fsExtra().default.readFile(filePath, 'utf-8');
149
108
  const parsed = parseComponentJsonContent(content, componentDir);
150
109
  const indent = (0, _detectIndent().default)(content).amount;
151
110
  const newLine = (0, _detectNewline().default)(content);
152
-
153
111
  const componentId = _component().ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);
154
-
155
112
  const aspects = await aspectListFactory(_extensionData().ExtensionDataList.fromConfigObject(parsed.extensions));
156
113
  return new ComponentConfigFile(componentId, aspects, componentDir, Boolean(parsed.propagate), {
157
114
  indent,
158
115
  newLine
159
116
  }, parsed.defaultScope);
160
117
  }
161
-
162
118
  static composePath(componentRootFolder) {
163
119
  return _path().default.join(componentRootFolder, _constants().COMPONENT_CONFIG_FILE_NAME);
164
120
  }
165
-
166
121
  async write(options = {}) {
167
122
  const json = this.toJson();
168
123
  const filePath = ComponentConfigFile.composePath(this.componentDir);
169
124
  const isExist = await _fsExtra().default.pathExists(filePath);
170
-
171
125
  if (isExist && !options.override) {
172
126
  throw new (_exceptions().AlreadyExistsError)(filePath);
173
127
  }
174
-
175
128
  return _fsExtra().default.writeJsonSync(filePath, json, {
176
129
  spaces: this.options.indent,
177
130
  EOL: this.options.newLine
178
131
  });
179
132
  }
180
-
181
133
  async addAspect(aspectId, config, resolveComponentId, shouldMergeConfig = false) {
182
134
  const existing = this.aspects.get(aspectId);
183
-
184
135
  if (existing) {
185
136
  const getNewConfig = () => {
186
137
  if (!shouldMergeConfig) return config;
187
138
  if (!config || config === '-') return config;
188
- if (!existing.config) return config; // @ts-ignore
189
-
139
+ if (!existing.config) return config;
140
+ // @ts-ignore
190
141
  if (existing.config === '-') return config;
191
142
  return (0, _lodash().merge)(existing.config, config);
192
143
  };
193
-
194
144
  existing.config = getNewConfig();
195
145
  } else {
196
146
  const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);
197
147
  this.aspects.entries.push(aspectEntry);
198
148
  }
199
149
  }
200
-
201
150
  async removeAspect(aspectId, markWithMinusIfNotExist, resolveComponentId) {
202
151
  const existing = this.aspects.get(aspectId);
203
-
204
152
  if (existing) {
205
153
  const aspectList = this.aspects.withoutEntries([aspectId]);
206
154
  this.aspects = aspectList;
@@ -208,13 +156,11 @@ class ComponentConfigFile {
208
156
  await this.addAspect(aspectId, _config().REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);
209
157
  }
210
158
  }
211
-
212
159
  async aspectEntryFromConfigObject(id, config, resolveComponentId) {
213
160
  const aspectId = await resolveComponentId(id);
214
161
  const legacyEntry = (0, _extensionData().configEntryToDataEntry)(id, config);
215
162
  return new (_component().AspectEntry)(aspectId, legacyEntry);
216
163
  }
217
-
218
164
  toJson() {
219
165
  return {
220
166
  componentId: this.componentId.toObject(),
@@ -223,16 +169,12 @@ class ComponentConfigFile {
223
169
  extensions: this.aspects.toConfigObject()
224
170
  };
225
171
  }
226
-
227
172
  toString() {
228
173
  const json = this.toJson();
229
174
  return (0, _stringifyPackage().default)(json, this.options.indent, this.options.newLine);
230
175
  }
231
-
232
176
  }
233
-
234
177
  exports.ComponentConfigFile = ComponentConfigFile;
235
-
236
178
  function parseComponentJsonContent(str, dir) {
237
179
  try {
238
180
  return JSON.parse(str);
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_INDENT","DEFAULT_NEWLINE","ComponentConfigFile","constructor","componentId","aspects","componentDir","propagate","options","indent","newLine","defaultScope","load","aspectListFactory","outsideDefaultScope","filePath","composePath","isExist","fs","pathExists","undefined","content","readFile","parsed","parseComponentJsonContent","detectIndent","amount","detectNewline","ComponentID","fromObject","ExtensionDataList","fromConfigObject","extensions","Boolean","componentRootFolder","path","join","COMPONENT_CONFIG_FILE_NAME","write","json","toJson","override","AlreadyExistsError","writeJsonSync","spaces","EOL","addAspect","aspectId","config","resolveComponentId","shouldMergeConfig","existing","get","getNewConfig","merge","aspectEntry","aspectEntryFromConfigObject","entries","push","removeAspect","markWithMinusIfNotExist","aspectList","withoutEntries","REMOVE_EXTENSION_SPECIAL_SIGN","id","legacyEntry","configEntryToDataEntry","AspectEntry","toObject","toConfigObject","toString","stringifyPackage","str","dir","JSON","parse","err","Error","message"],"sources":["component-config-file.ts"],"sourcesContent":["import { ComponentID, AspectList, AspectEntry, ResolveComponentIdFunc } from '@teambit/component';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';\nimport { ExtensionDataList, configEntryToDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport detectIndent from 'detect-indent';\nimport detectNewline from 'detect-newline';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport stringifyPackage from 'stringify-package';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { merge } from 'lodash';\nimport { AlreadyExistsError } from './exceptions';\n\ninterface ComponentConfigFileOptions {\n indent: number;\n newLine: '\\r\\n' | '\\n' | undefined;\n}\n\ninterface WriteConfigFileOptions {\n override?: boolean;\n}\n\ninterface ComponentConfigFileJson {\n componentId: any;\n // TODO: think if we want to change it to aspects\n extensions: any;\n propagate: boolean;\n defaultScope?: string;\n}\n\nconst DEFAULT_INDENT = 2;\nconst DEFAULT_NEWLINE = '\\n';\n\nexport class ComponentConfigFile {\n constructor(\n public componentId: ComponentID,\n public aspects: AspectList,\n private componentDir: PathOsBasedAbsolute,\n public propagate: boolean = false,\n private options: ComponentConfigFileOptions = { indent: DEFAULT_INDENT, newLine: DEFAULT_NEWLINE },\n public defaultScope?: string\n ) {}\n\n static async load(\n componentDir: PathOsBasedAbsolute,\n aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>,\n outsideDefaultScope?: string\n ): Promise<ComponentConfigFile | undefined> {\n const filePath = ComponentConfigFile.composePath(componentDir);\n const isExist = await fs.pathExists(filePath);\n if (!isExist) {\n return undefined;\n }\n const content = await fs.readFile(filePath, 'utf-8');\n const parsed: ComponentConfigFileJson = parseComponentJsonContent(content, componentDir);\n const indent = detectIndent(content).amount;\n const newLine = detectNewline(content);\n const componentId = ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);\n const aspects = await aspectListFactory(ExtensionDataList.fromConfigObject(parsed.extensions));\n\n return new ComponentConfigFile(\n componentId,\n aspects,\n componentDir,\n Boolean(parsed.propagate),\n { indent, newLine },\n parsed.defaultScope\n );\n }\n\n static composePath(componentRootFolder: string) {\n return path.join(componentRootFolder, COMPONENT_CONFIG_FILE_NAME);\n }\n\n async write(options: WriteConfigFileOptions = {}): Promise<void> {\n const json = this.toJson();\n const filePath = ComponentConfigFile.composePath(this.componentDir);\n const isExist = await fs.pathExists(filePath);\n if (isExist && !options.override) {\n throw new AlreadyExistsError(filePath);\n }\n return fs.writeJsonSync(filePath, json, { spaces: this.options.indent, EOL: this.options.newLine });\n }\n\n async addAspect(\n aspectId: string,\n config: any,\n resolveComponentId: ResolveComponentIdFunc,\n shouldMergeConfig = false\n ) {\n const existing = this.aspects.get(aspectId);\n\n if (existing) {\n const getNewConfig = () => {\n if (!shouldMergeConfig) return config;\n if (!config || config === '-') return config;\n if (!existing.config) return config;\n // @ts-ignore\n if (existing.config === '-') return config;\n return merge(existing.config, config);\n };\n existing.config = getNewConfig();\n } else {\n const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);\n this.aspects.entries.push(aspectEntry);\n }\n }\n\n async removeAspect(aspectId: string, markWithMinusIfNotExist: boolean, resolveComponentId: ResolveComponentIdFunc) {\n const existing = this.aspects.get(aspectId);\n if (existing) {\n const aspectList = this.aspects.withoutEntries([aspectId]);\n this.aspects = aspectList;\n } else if (markWithMinusIfNotExist) {\n await this.addAspect(aspectId, REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);\n }\n }\n\n private async aspectEntryFromConfigObject(id: string, config: any, resolveComponentId: ResolveComponentIdFunc) {\n const aspectId = await resolveComponentId(id);\n const legacyEntry = configEntryToDataEntry(id, config);\n return new AspectEntry(aspectId, legacyEntry);\n }\n\n toJson(): ComponentConfigFileJson {\n return {\n componentId: this.componentId.toObject(),\n propagate: this.propagate,\n defaultScope: this.defaultScope,\n extensions: this.aspects.toConfigObject(),\n };\n }\n\n toString(): string {\n const json = this.toJson();\n return stringifyPackage(json, this.options.indent, this.options.newLine);\n }\n}\n\nfunction parseComponentJsonContent(str: string, dir: string) {\n try {\n return JSON.parse(str);\n } catch (err: any) {\n throw new Error(`failed parsing component.json file at ${dir}. original error: ${err.message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAmBA,MAAMA,cAAc,GAAG,CAAvB;AACA,MAAMC,eAAe,GAAG,IAAxB;;AAEO,MAAMC,mBAAN,CAA0B;EAC/BC,WAAW,CACFC,WADE,EAEFC,OAFE,EAGDC,YAHC,EAIFC,SAAkB,GAAG,KAJnB,EAKDC,OAAmC,GAAG;IAAEC,MAAM,EAAET,cAAV;IAA0BU,OAAO,EAAET;EAAnC,CALrC,EAMFU,YANE,EAOT;IAAA,KANOP,WAMP,GANOA,WAMP;IAAA,KALOC,OAKP,GALOA,OAKP;IAAA,KAJQC,YAIR,GAJQA,YAIR;IAAA,KAHOC,SAGP,GAHOA,SAGP;IAAA,KAFQC,OAER,GAFQA,OAER;IAAA,KADOG,YACP,GADOA,YACP;EAAE;;EAEa,aAAJC,IAAI,CACfN,YADe,EAEfO,iBAFe,EAGfC,mBAHe,EAI2B;IAC1C,MAAMC,QAAQ,GAAGb,mBAAmB,CAACc,WAApB,CAAgCV,YAAhC,CAAjB;IACA,MAAMW,OAAO,GAAG,MAAMC,kBAAA,CAAGC,UAAH,CAAcJ,QAAd,CAAtB;;IACA,IAAI,CAACE,OAAL,EAAc;MACZ,OAAOG,SAAP;IACD;;IACD,MAAMC,OAAO,GAAG,MAAMH,kBAAA,CAAGI,QAAH,CAAYP,QAAZ,EAAsB,OAAtB,CAAtB;IACA,MAAMQ,MAA+B,GAAGC,yBAAyB,CAACH,OAAD,EAAUf,YAAV,CAAjE;IACA,MAAMG,MAAM,GAAG,IAAAgB,uBAAA,EAAaJ,OAAb,EAAsBK,MAArC;IACA,MAAMhB,OAAO,GAAG,IAAAiB,wBAAA,EAAcN,OAAd,CAAhB;;IACA,MAAMjB,WAAW,GAAGwB,wBAAA,CAAYC,UAAZ,CAAuBN,MAAM,CAACnB,WAA9B,EAA2CmB,MAAM,CAACZ,YAAP,IAAuBG,mBAAlE,CAApB;;IACA,MAAMT,OAAO,GAAG,MAAMQ,iBAAiB,CAACiB,kCAAA,CAAkBC,gBAAlB,CAAmCR,MAAM,CAACS,UAA1C,CAAD,CAAvC;IAEA,OAAO,IAAI9B,mBAAJ,CACLE,WADK,EAELC,OAFK,EAGLC,YAHK,EAIL2B,OAAO,CAACV,MAAM,CAAChB,SAAR,CAJF,EAKL;MAAEE,MAAF;MAAUC;IAAV,CALK,EAMLa,MAAM,CAACZ,YANF,CAAP;EAQD;;EAEiB,OAAXK,WAAW,CAACkB,mBAAD,EAA8B;IAC9C,OAAOC,eAAA,CAAKC,IAAL,CAAUF,mBAAV,EAA+BG,uCAA/B,CAAP;EACD;;EAEU,MAALC,KAAK,CAAC9B,OAA+B,GAAG,EAAnC,EAAsD;IAC/D,MAAM+B,IAAI,GAAG,KAAKC,MAAL,EAAb;IACA,MAAMzB,QAAQ,GAAGb,mBAAmB,CAACc,WAApB,CAAgC,KAAKV,YAArC,CAAjB;IACA,MAAMW,OAAO,GAAG,MAAMC,kBAAA,CAAGC,UAAH,CAAcJ,QAAd,CAAtB;;IACA,IAAIE,OAAO,IAAI,CAACT,OAAO,CAACiC,QAAxB,EAAkC;MAChC,MAAM,KAAIC,gCAAJ,EAAuB3B,QAAvB,CAAN;IACD;;IACD,OAAOG,kBAAA,CAAGyB,aAAH,CAAiB5B,QAAjB,EAA2BwB,IAA3B,EAAiC;MAAEK,MAAM,EAAE,KAAKpC,OAAL,CAAaC,MAAvB;MAA+BoC,GAAG,EAAE,KAAKrC,OAAL,CAAaE;IAAjD,CAAjC,CAAP;EACD;;EAEc,MAAToC,SAAS,CACbC,QADa,EAEbC,MAFa,EAGbC,kBAHa,EAIbC,iBAAiB,GAAG,KAJP,EAKb;IACA,MAAMC,QAAQ,GAAG,KAAK9C,OAAL,CAAa+C,GAAb,CAAiBL,QAAjB,CAAjB;;IAEA,IAAII,QAAJ,EAAc;MACZ,MAAME,YAAY,GAAG,MAAM;QACzB,IAAI,CAACH,iBAAL,EAAwB,OAAOF,MAAP;QACxB,IAAI,CAACA,MAAD,IAAWA,MAAM,KAAK,GAA1B,EAA+B,OAAOA,MAAP;QAC/B,IAAI,CAACG,QAAQ,CAACH,MAAd,EAAsB,OAAOA,MAAP,CAHG,CAIzB;;QACA,IAAIG,QAAQ,CAACH,MAAT,KAAoB,GAAxB,EAA6B,OAAOA,MAAP;QAC7B,OAAO,IAAAM,eAAA,EAAMH,QAAQ,CAACH,MAAf,EAAuBA,MAAvB,CAAP;MACD,CAPD;;MAQAG,QAAQ,CAACH,MAAT,GAAkBK,YAAY,EAA9B;IACD,CAVD,MAUO;MACL,MAAME,WAAW,GAAG,MAAM,KAAKC,2BAAL,CAAiCT,QAAjC,EAA2CC,MAA3C,EAAmDC,kBAAnD,CAA1B;MACA,KAAK5C,OAAL,CAAaoD,OAAb,CAAqBC,IAArB,CAA0BH,WAA1B;IACD;EACF;;EAEiB,MAAZI,YAAY,CAACZ,QAAD,EAAmBa,uBAAnB,EAAqDX,kBAArD,EAAiG;IACjH,MAAME,QAAQ,GAAG,KAAK9C,OAAL,CAAa+C,GAAb,CAAiBL,QAAjB,CAAjB;;IACA,IAAII,QAAJ,EAAc;MACZ,MAAMU,UAAU,GAAG,KAAKxD,OAAL,CAAayD,cAAb,CAA4B,CAACf,QAAD,CAA5B,CAAnB;MACA,KAAK1C,OAAL,GAAewD,UAAf;IACD,CAHD,MAGO,IAAID,uBAAJ,EAA6B;MAClC,MAAM,KAAKd,SAAL,CAAeC,QAAf,EAAyBgB,uCAAzB,EAAwDd,kBAAxD,CAAN;IACD;EACF;;EAEwC,MAA3BO,2BAA2B,CAACQ,EAAD,EAAahB,MAAb,EAA0BC,kBAA1B,EAAsE;IAC7G,MAAMF,QAAQ,GAAG,MAAME,kBAAkB,CAACe,EAAD,CAAzC;IACA,MAAMC,WAAW,GAAG,IAAAC,uCAAA,EAAuBF,EAAvB,EAA2BhB,MAA3B,CAApB;IACA,OAAO,KAAImB,wBAAJ,EAAgBpB,QAAhB,EAA0BkB,WAA1B,CAAP;EACD;;EAEDzB,MAAM,GAA4B;IAChC,OAAO;MACLpC,WAAW,EAAE,KAAKA,WAAL,CAAiBgE,QAAjB,EADR;MAEL7D,SAAS,EAAE,KAAKA,SAFX;MAGLI,YAAY,EAAE,KAAKA,YAHd;MAILqB,UAAU,EAAE,KAAK3B,OAAL,CAAagE,cAAb;IAJP,CAAP;EAMD;;EAEDC,QAAQ,GAAW;IACjB,MAAM/B,IAAI,GAAG,KAAKC,MAAL,EAAb;IACA,OAAO,IAAA+B,2BAAA,EAAiBhC,IAAjB,EAAuB,KAAK/B,OAAL,CAAaC,MAApC,EAA4C,KAAKD,OAAL,CAAaE,OAAzD,CAAP;EACD;;AAvG8B;;;;AA0GjC,SAASc,yBAAT,CAAmCgD,GAAnC,EAAgDC,GAAhD,EAA6D;EAC3D,IAAI;IACF,OAAOC,IAAI,CAACC,KAAL,CAAWH,GAAX,CAAP;EACD,CAFD,CAEE,OAAOI,GAAP,EAAiB;IACjB,MAAM,IAAIC,KAAJ,CAAW,yCAAwCJ,GAAI,qBAAoBG,GAAG,CAACE,OAAQ,EAAvF,CAAN;EACD;AACF"}
1
+ {"version":3,"names":["DEFAULT_INDENT","DEFAULT_NEWLINE","ComponentConfigFile","constructor","componentId","aspects","componentDir","propagate","options","indent","newLine","defaultScope","load","aspectListFactory","outsideDefaultScope","filePath","composePath","isExist","fs","pathExists","undefined","content","readFile","parsed","parseComponentJsonContent","detectIndent","amount","detectNewline","ComponentID","fromObject","ExtensionDataList","fromConfigObject","extensions","Boolean","componentRootFolder","path","join","COMPONENT_CONFIG_FILE_NAME","write","json","toJson","override","AlreadyExistsError","writeJsonSync","spaces","EOL","addAspect","aspectId","config","resolveComponentId","shouldMergeConfig","existing","get","getNewConfig","merge","aspectEntry","aspectEntryFromConfigObject","entries","push","removeAspect","markWithMinusIfNotExist","aspectList","withoutEntries","REMOVE_EXTENSION_SPECIAL_SIGN","id","legacyEntry","configEntryToDataEntry","AspectEntry","toObject","toConfigObject","toString","stringifyPackage","str","dir","JSON","parse","err","Error","message"],"sources":["component-config-file.ts"],"sourcesContent":["import { ComponentID, AspectList, AspectEntry, ResolveComponentIdFunc } from '@teambit/component';\nimport { COMPONENT_CONFIG_FILE_NAME } from '@teambit/legacy/dist/constants';\nimport { ExtensionDataList, configEntryToDataEntry } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { PathOsBasedAbsolute } from '@teambit/legacy/dist/utils/path';\nimport detectIndent from 'detect-indent';\nimport detectNewline from 'detect-newline';\nimport fs from 'fs-extra';\nimport path from 'path';\nimport stringifyPackage from 'stringify-package';\nimport { REMOVE_EXTENSION_SPECIAL_SIGN } from '@teambit/legacy/dist/consumer/config';\nimport { merge } from 'lodash';\nimport { AlreadyExistsError } from './exceptions';\n\ninterface ComponentConfigFileOptions {\n indent: number;\n newLine: '\\r\\n' | '\\n' | undefined;\n}\n\ninterface WriteConfigFileOptions {\n override?: boolean;\n}\n\ninterface ComponentConfigFileJson {\n componentId: any;\n // TODO: think if we want to change it to aspects\n extensions: any;\n propagate: boolean;\n defaultScope?: string;\n}\n\nconst DEFAULT_INDENT = 2;\nconst DEFAULT_NEWLINE = '\\n';\n\nexport class ComponentConfigFile {\n constructor(\n public componentId: ComponentID,\n public aspects: AspectList,\n private componentDir: PathOsBasedAbsolute,\n public propagate: boolean = false,\n private options: ComponentConfigFileOptions = { indent: DEFAULT_INDENT, newLine: DEFAULT_NEWLINE },\n public defaultScope?: string\n ) {}\n\n static async load(\n componentDir: PathOsBasedAbsolute,\n aspectListFactory: (extensionDataList: ExtensionDataList) => Promise<AspectList>,\n outsideDefaultScope?: string\n ): Promise<ComponentConfigFile | undefined> {\n const filePath = ComponentConfigFile.composePath(componentDir);\n const isExist = await fs.pathExists(filePath);\n if (!isExist) {\n return undefined;\n }\n const content = await fs.readFile(filePath, 'utf-8');\n const parsed: ComponentConfigFileJson = parseComponentJsonContent(content, componentDir);\n const indent = detectIndent(content).amount;\n const newLine = detectNewline(content);\n const componentId = ComponentID.fromObject(parsed.componentId, parsed.defaultScope || outsideDefaultScope);\n const aspects = await aspectListFactory(ExtensionDataList.fromConfigObject(parsed.extensions));\n\n return new ComponentConfigFile(\n componentId,\n aspects,\n componentDir,\n Boolean(parsed.propagate),\n { indent, newLine },\n parsed.defaultScope\n );\n }\n\n static composePath(componentRootFolder: string) {\n return path.join(componentRootFolder, COMPONENT_CONFIG_FILE_NAME);\n }\n\n async write(options: WriteConfigFileOptions = {}): Promise<void> {\n const json = this.toJson();\n const filePath = ComponentConfigFile.composePath(this.componentDir);\n const isExist = await fs.pathExists(filePath);\n if (isExist && !options.override) {\n throw new AlreadyExistsError(filePath);\n }\n return fs.writeJsonSync(filePath, json, { spaces: this.options.indent, EOL: this.options.newLine });\n }\n\n async addAspect(\n aspectId: string,\n config: any,\n resolveComponentId: ResolveComponentIdFunc,\n shouldMergeConfig = false\n ) {\n const existing = this.aspects.get(aspectId);\n\n if (existing) {\n const getNewConfig = () => {\n if (!shouldMergeConfig) return config;\n if (!config || config === '-') return config;\n if (!existing.config) return config;\n // @ts-ignore\n if (existing.config === '-') return config;\n return merge(existing.config, config);\n };\n existing.config = getNewConfig();\n } else {\n const aspectEntry = await this.aspectEntryFromConfigObject(aspectId, config, resolveComponentId);\n this.aspects.entries.push(aspectEntry);\n }\n }\n\n async removeAspect(aspectId: string, markWithMinusIfNotExist: boolean, resolveComponentId: ResolveComponentIdFunc) {\n const existing = this.aspects.get(aspectId);\n if (existing) {\n const aspectList = this.aspects.withoutEntries([aspectId]);\n this.aspects = aspectList;\n } else if (markWithMinusIfNotExist) {\n await this.addAspect(aspectId, REMOVE_EXTENSION_SPECIAL_SIGN, resolveComponentId);\n }\n }\n\n private async aspectEntryFromConfigObject(id: string, config: any, resolveComponentId: ResolveComponentIdFunc) {\n const aspectId = await resolveComponentId(id);\n const legacyEntry = configEntryToDataEntry(id, config);\n return new AspectEntry(aspectId, legacyEntry);\n }\n\n toJson(): ComponentConfigFileJson {\n return {\n componentId: this.componentId.toObject(),\n propagate: this.propagate,\n defaultScope: this.defaultScope,\n extensions: this.aspects.toConfigObject(),\n };\n }\n\n toString(): string {\n const json = this.toJson();\n return stringifyPackage(json, this.options.indent, this.options.newLine);\n }\n}\n\nfunction parseComponentJsonContent(str: string, dir: string) {\n try {\n return JSON.parse(str);\n } catch (err: any) {\n throw new Error(`failed parsing component.json file at ${dir}. original error: ${err.message}`);\n }\n}\n"],"mappings":"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"}
@@ -4,24 +4,18 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AlreadyExistsError = void 0;
7
-
8
7
  function _bitError() {
9
8
  const data = require("@teambit/bit-error");
10
-
11
9
  _bitError = function () {
12
10
  return data;
13
11
  };
14
-
15
12
  return data;
16
13
  }
17
-
18
14
  class AlreadyExistsError extends _bitError().BitError {
19
15
  constructor(filePath) {
20
16
  super(`config file at ${filePath} already exist. use override in case you want to override it`);
21
17
  }
22
-
23
18
  }
24
-
25
19
  exports.AlreadyExistsError = AlreadyExistsError;
26
20
 
27
21
  //# sourceMappingURL=already-exists.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AlreadyExistsError","BitError","constructor","filePath"],"sources":["already-exists.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class AlreadyExistsError extends BitError {\n constructor(filePath: string) {\n super(`config file at ${filePath} already exist. use override in case you want to override it`);\n }\n}\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,kBAAN,SAAiCC,oBAAjC,CAA0C;EAC/CC,WAAW,CAACC,QAAD,EAAmB;IAC5B,MAAO,kBAAiBA,QAAS,8DAAjC;EACD;;AAH8C"}
1
+ {"version":3,"names":["AlreadyExistsError","BitError","constructor","filePath"],"sources":["already-exists.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\n\nexport class AlreadyExistsError extends BitError {\n constructor(filePath: string) {\n super(`config file at ${filePath} already exist. use override in case you want to override it`);\n }\n}\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,kBAAkB,SAASC,oBAAQ,CAAC;EAC/CC,WAAW,CAACC,QAAgB,EAAE;IAC5B,KAAK,CAAE,kBAAiBA,QAAS,8DAA6D,CAAC;EACjG;AACF;AAAC"}
@@ -9,14 +9,11 @@ Object.defineProperty(exports, "AlreadyExistsError", {
9
9
  return _alreadyExists().AlreadyExistsError;
10
10
  }
11
11
  });
12
-
13
12
  function _alreadyExists() {
14
13
  const data = require("./already-exists");
15
-
16
14
  _alreadyExists = function () {
17
15
  return data;
18
16
  };
19
-
20
17
  return data;
21
18
  }
22
19
 
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { AlreadyExistsError } from './already-exists';\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { AlreadyExistsError } from './already-exists';\n"],"mappings":";;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
@@ -15,24 +15,18 @@ Object.defineProperty(exports, "ComponentConfigFile", {
15
15
  return _componentConfigFile().ComponentConfigFile;
16
16
  }
17
17
  });
18
-
19
18
  function _componentConfigFile() {
20
19
  const data = require("./component-config-file");
21
-
22
20
  _componentConfigFile = function () {
23
21
  return data;
24
22
  };
25
-
26
23
  return data;
27
24
  }
28
-
29
25
  function _exceptions() {
30
26
  const data = require("./exceptions");
31
-
32
27
  _exceptions = function () {
33
28
  return data;
34
29
  };
35
-
36
30
  return data;
37
31
  }
38
32
 
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { ComponentConfigFile } from './component-config-file';\nexport { AlreadyExistsError } from './exceptions';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { ComponentConfigFile } from './component-config-file';\nexport { AlreadyExistsError } from './exceptions';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA"}
@@ -1,56 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.ComponentTreeWidget = void 0;
9
-
10
8
  function _defineProperty2() {
11
9
  const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
-
13
10
  _defineProperty2 = function () {
14
11
  return data;
15
12
  };
16
-
17
13
  return data;
18
14
  }
19
-
20
15
  function _componentUi() {
21
16
  const data = require("@teambit/component.ui.component-status-resolver");
22
-
23
17
  _componentUi = function () {
24
18
  return data;
25
19
  };
26
-
27
20
  return data;
28
21
  }
29
-
30
22
  function _lanesHooks() {
31
23
  const data = require("@teambit/lanes.hooks.use-lanes");
32
-
33
24
  _lanesHooks = function () {
34
25
  return data;
35
26
  };
36
-
37
27
  return data;
38
28
  }
39
-
40
29
  function _react() {
41
30
  const data = _interopRequireWildcard(require("react"));
42
-
43
31
  _react = function () {
44
32
  return data;
45
33
  };
46
-
47
34
  return data;
48
35
  }
49
-
50
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
-
52
37
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
-
54
38
  class ComponentTreeWidget {
55
39
  constructor() {
56
40
  (0, _defineProperty2().default)(this, "widget", ({
@@ -69,9 +53,7 @@ class ComponentTreeWidget {
69
53
  });
70
54
  });
71
55
  }
72
-
73
56
  }
74
-
75
57
  exports.ComponentTreeWidget = ComponentTreeWidget;
76
58
 
77
59
  //# sourceMappingURL=component-tree.widget.js.map