@teambit/variants 0.0.479 → 0.0.483

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.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export type { VariantsMain } from './variants.main.runtime';
1
+ export type { VariantsMain, Patterns } from './variants.main.runtime';
2
2
  export { VariantsAspect } from './variants.aspect';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { VariantsMain } from './variants.main.runtime';\nexport { VariantsAspect } from './variants.aspect';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA","sourcesContent":["export type { VariantsMain, Patterns } from './variants.main.runtime';\nexport { VariantsAspect } from './variants.aspect';\n"]}
@@ -1,3 +1,4 @@
1
+ import type { ConfigMain } from '@teambit/config';
1
2
  import ConsumerOverrides from '@teambit/legacy/dist/consumer/config/consumer-overrides';
2
3
  import { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';
3
4
  import { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';
@@ -13,10 +14,11 @@ export declare type VariantsComponentConfig = {
13
14
  };
14
15
  export declare class VariantsMain {
15
16
  private patterns;
17
+ private configAspect;
16
18
  static runtime: import("@teambit/harmony").RuntimeDefinition;
17
- static dependencies: never[];
19
+ static dependencies: import("@teambit/harmony").Aspect[];
18
20
  _loadedLegacy: ConsumerOverrides;
19
- constructor(patterns: Patterns);
21
+ constructor(patterns: Patterns, configAspect: ConfigMain);
20
22
  private validateConfig;
21
23
  raw(): Patterns;
22
24
  /**
@@ -28,5 +30,15 @@ export declare class VariantsMain {
28
30
  * @param rootDir
29
31
  */
30
32
  byRootDirAndName(rootDir: PathLinuxRelative, componentName: string): VariantsComponentConfig | undefined;
31
- static provider(_deps: any, config: any): Promise<VariantsMain>;
33
+ /**
34
+ * Updates the specified extension object of the specified variant.
35
+ * @param {string} variant - The variant pattern.
36
+ * @param {string} extensionId - The extension ID.
37
+ * @param {Object} extensionConfig - The extension configuration.
38
+ * @param {boolean} opts.overrideExisting - When true, any existing entries are overriden.
39
+ */
40
+ setExtension(variant: string, extensionId: string, extensionConfig: any, opts?: {
41
+ overrideExisting?: boolean;
42
+ }): void;
43
+ static provider([configAspect]: [ConfigMain], config: any): Promise<VariantsMain>;
32
44
  }
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ require("core-js/modules/es.array.iterator.js");
6
+
5
7
  require("core-js/modules/es.promise.js");
6
8
 
7
9
  require("core-js/modules/es.regexp.exec.js");
@@ -31,6 +33,16 @@ function _cli() {
31
33
  return data;
32
34
  }
33
35
 
36
+ function _config() {
37
+ const data = require("@teambit/config");
38
+
39
+ _config = function () {
40
+ return data;
41
+ };
42
+
43
+ return data;
44
+ }
45
+
34
46
  function _consumerOverrides() {
35
47
  const data = _interopRequireDefault(require("@teambit/legacy/dist/consumer/config/consumer-overrides"));
36
48
 
@@ -51,6 +63,16 @@ function _extensionData() {
51
63
  return data;
52
64
  }
53
65
 
66
+ function _commentJson() {
67
+ const data = require("comment-json");
68
+
69
+ _commentJson = function () {
70
+ return data;
71
+ };
72
+
73
+ return data;
74
+ }
75
+
54
76
  function _lodash() {
55
77
  const data = require("lodash");
56
78
 
@@ -94,8 +116,9 @@ function _variants() {
94
116
  const INTERNAL_FIELDS = ['propagate', 'exclude', 'defaultScope'];
95
117
 
96
118
  class VariantsMain {
97
- constructor(patterns) {
119
+ constructor(patterns, configAspect) {
98
120
  this.patterns = patterns;
121
+ this.configAspect = configAspect;
99
122
  (0, _defineProperty2().default)(this, "_loadedLegacy", void 0);
100
123
  this._loadedLegacy = _consumerOverrides().default.load(this.patterns);
101
124
  this.validateConfig();
@@ -165,16 +188,40 @@ class VariantsMain {
165
188
  };
166
189
  return result;
167
190
  }
191
+ /**
192
+ * Updates the specified extension object of the specified variant.
193
+ * @param {string} variant - The variant pattern.
194
+ * @param {string} extensionId - The extension ID.
195
+ * @param {Object} extensionConfig - The extension configuration.
196
+ * @param {boolean} opts.overrideExisting - When true, any existing entries are overriden.
197
+ */
198
+
199
+
200
+ setExtension(variant, extensionId, extensionConfig, opts) {
201
+ var _this$patterns$varian;
202
+
203
+ const newVariant = (_this$patterns$varian = this.patterns[variant]) !== null && _this$patterns$varian !== void 0 ? _this$patterns$varian : {};
204
+ (0, _commentJson().assign)(newVariant, {
205
+ [extensionId]: extensionConfig
206
+ });
207
+ (0, _commentJson().assign)(this.patterns, {
208
+ [variant]: newVariant
209
+ });
210
+ this.configAspect.setExtension(_variants().VariantsAspect.id, this.patterns, {
211
+ overrideExisting: (opts === null || opts === void 0 ? void 0 : opts.overrideExisting) === true,
212
+ ignoreVersion: true
213
+ });
214
+ }
168
215
 
169
- static async provider(_deps, config) {
170
- return new VariantsMain(config);
216
+ static async provider([configAspect], config) {
217
+ return new VariantsMain(config, configAspect);
171
218
  }
172
219
 
173
220
  }
174
221
 
175
222
  exports.VariantsMain = VariantsMain;
176
223
  (0, _defineProperty2().default)(VariantsMain, "runtime", _cli().MainRuntime);
177
- (0, _defineProperty2().default)(VariantsMain, "dependencies", []);
224
+ (0, _defineProperty2().default)(VariantsMain, "dependencies", [_config().ConfigAspect]);
178
225
 
179
226
  function getExtensionFromPatternRawConfig(config) {
180
227
  const rawExtensions = (0, _lodash().omit)(config, INTERNAL_FIELDS);
@@ -1 +1 @@
1
- {"version":3,"sources":["variants.main.runtime.ts"],"names":["INTERNAL_FIELDS","VariantsMain","constructor","patterns","_loadedLegacy","ConsumerOverrides","load","validateConfig","patternConfig","pattern","defaultScope","InvalidScopeName","undefined","raw","legacy","byRootDirAndName","rootDir","componentName","matches","match","excluded","push","config","specificity","maxSpecificity","sortedMatches","propagate","extensionsToMerge","forEach","getExtensionFromPatternRawConfig","mergedExtensions","ExtensionDataList","mergeConfigs","result","extensions","length","provider","_deps","MainRuntime","rawExtensions","fromConfigObject","VariantsAspect","addRuntime"],"mappings":"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","sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport ConsumerOverrides from '@teambit/legacy/dist/consumer/config/consumer-overrides';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { omit, forEach } from 'lodash';\nimport {\n MatchedPatternWithConfig,\n isMatchPattern,\n sortMatchesBySpecificity,\n} from '@teambit/workspace.modules.match-pattern';\nimport { InvalidScopeName, isValidScopeName } from '@teambit/legacy-bit-id';\nimport { VariantsAspect } from './variants.aspect';\n\nexport type Patterns = { [pattern: string]: Record<string, any> };\n\nexport type VariantsComponentConfig = {\n propagate: boolean;\n exclude?: string[];\n defaultScope?: string;\n extensions: ExtensionDataList;\n maxSpecificity: number;\n};\n\nconst INTERNAL_FIELDS = ['propagate', 'exclude', 'defaultScope'];\n\nexport class VariantsMain {\n static runtime = MainRuntime;\n static dependencies = [];\n\n _loadedLegacy: ConsumerOverrides;\n\n constructor(private patterns: Patterns) {\n this._loadedLegacy = ConsumerOverrides.load(this.patterns);\n this.validateConfig();\n }\n\n private validateConfig() {\n forEach(this.patterns, (patternConfig: Record<string, any>, pattern: string) => {\n if (patternConfig.defaultScope && !isValidScopeName(patternConfig.defaultScope)) {\n throw new InvalidScopeName(patternConfig.defaultScope, undefined, pattern);\n }\n });\n }\n\n raw(): Patterns {\n return this.patterns;\n }\n\n /**\n * Get all the patterns defined in the variants section of the workspace as the legacy ConsumerOverrides format\n */\n legacy(): ConsumerOverrides {\n // return ConsumerOverrides.load(this.patterns);\n return this._loadedLegacy;\n }\n\n /**\n * Gets the config for specific component after merge all matching patterns of the component dir and id in the variants section\n * @param rootDir\n */\n byRootDirAndName(rootDir: PathLinuxRelative, componentName: string): VariantsComponentConfig | undefined {\n const matches: MatchedPatternWithConfig[] = [];\n forEach(this.patterns, (patternConfig, pattern) => {\n const match = isMatchPattern(rootDir, componentName, pattern);\n\n // Ignore matches with exclude matches\n if (match.match && !match.excluded) {\n matches.push({\n config: patternConfig,\n specificity: match.maxSpecificity,\n });\n }\n });\n\n const sortedMatches: MatchedPatternWithConfig[] = sortMatchesBySpecificity(matches);\n\n let defaultScope;\n let propagate = true;\n const extensionsToMerge: ExtensionDataList[] = [];\n sortedMatches.forEach((match) => {\n defaultScope = defaultScope || match.config.defaultScope;\n if (propagate) {\n extensionsToMerge.push(getExtensionFromPatternRawConfig(match.config));\n }\n if (match.config.propagate === false) {\n propagate = false;\n }\n });\n\n const mergedExtensions = ExtensionDataList.mergeConfigs(extensionsToMerge);\n const result = {\n defaultScope,\n extensions: mergedExtensions,\n propagate,\n maxSpecificity: sortedMatches.length ? sortedMatches[0].specificity : -1,\n };\n return result;\n }\n\n static async provider(_deps, config) {\n return new VariantsMain(config);\n }\n}\n\nfunction getExtensionFromPatternRawConfig(config: Record<string, any>) {\n const rawExtensions = omit(config, INTERNAL_FIELDS);\n const extensions = ExtensionDataList.fromConfigObject(rawExtensions);\n return extensions;\n}\n\nVariantsAspect.addRuntime(VariantsMain);\n"]}
1
+ {"version":3,"sources":["variants.main.runtime.ts"],"names":["INTERNAL_FIELDS","VariantsMain","constructor","patterns","configAspect","_loadedLegacy","ConsumerOverrides","load","validateConfig","patternConfig","pattern","defaultScope","InvalidScopeName","undefined","raw","legacy","byRootDirAndName","rootDir","componentName","matches","match","excluded","push","config","specificity","maxSpecificity","sortedMatches","propagate","extensionsToMerge","forEach","getExtensionFromPatternRawConfig","mergedExtensions","ExtensionDataList","mergeConfigs","result","extensions","length","setExtension","variant","extensionId","extensionConfig","opts","newVariant","VariantsAspect","id","overrideExisting","ignoreVersion","provider","MainRuntime","ConfigAspect","rawExtensions","fromConfigObject","addRuntime"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAKA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAYA,MAAMA,eAAe,GAAG,CAAC,WAAD,EAAc,SAAd,EAAyB,cAAzB,CAAxB;;AAEO,MAAMC,YAAN,CAAmB;AAMxBC,EAAAA,WAAW,CAASC,QAAT,EAAqCC,YAArC,EAA+D;AAAA,SAAtDD,QAAsD,GAAtDA,QAAsD;AAAA,SAA1BC,YAA0B,GAA1BA,YAA0B;AAAA;AACxE,SAAKC,aAAL,GAAqBC,6BAAkBC,IAAlB,CAAuB,KAAKJ,QAA5B,CAArB;AACA,SAAKK,cAAL;AACD;;AAEOA,EAAAA,cAAc,GAAG;AACvB,2BAAQ,KAAKL,QAAb,EAAuB,CAACM,aAAD,EAAqCC,OAArC,KAAyD;AAC9E,UAAID,aAAa,CAACE,YAAd,IAA8B,CAAC,qCAAiBF,aAAa,CAACE,YAA/B,CAAnC,EAAiF;AAC/E,cAAM,KAAIC,+BAAJ,EAAqBH,aAAa,CAACE,YAAnC,EAAiDE,SAAjD,EAA4DH,OAA5D,CAAN;AACD;AACF,KAJD;AAKD;;AAEDI,EAAAA,GAAG,GAAa;AACd,WAAO,KAAKX,QAAZ;AACD;AAED;AACF;AACA;;;AACEY,EAAAA,MAAM,GAAsB;AAC1B;AACA,WAAO,KAAKV,aAAZ;AACD;AAED;AACF;AACA;AACA;;;AACEW,EAAAA,gBAAgB,CAACC,OAAD,EAA6BC,aAA7B,EAAyF;AACvG,UAAMC,OAAmC,GAAG,EAA5C;AACA,2BAAQ,KAAKhB,QAAb,EAAuB,CAACM,aAAD,EAAgBC,OAAhB,KAA4B;AACjD,YAAMU,KAAK,GAAG,wCAAeH,OAAf,EAAwBC,aAAxB,EAAuCR,OAAvC,CAAd,CADiD,CAGjD;;AACA,UAAIU,KAAK,CAACA,KAAN,IAAe,CAACA,KAAK,CAACC,QAA1B,EAAoC;AAClCF,QAAAA,OAAO,CAACG,IAAR,CAAa;AACXC,UAAAA,MAAM,EAAEd,aADG;AAEXe,UAAAA,WAAW,EAAEJ,KAAK,CAACK;AAFR,SAAb;AAID;AACF,KAVD;AAYA,UAAMC,aAAyC,GAAG,kDAAyBP,OAAzB,CAAlD;AAEA,QAAIR,YAAJ;AACA,QAAIgB,SAAS,GAAG,IAAhB;AACA,UAAMC,iBAAsC,GAAG,EAA/C;AACAF,IAAAA,aAAa,CAACG,OAAd,CAAuBT,KAAD,IAAW;AAC/BT,MAAAA,YAAY,GAAGA,YAAY,IAAIS,KAAK,CAACG,MAAN,CAAaZ,YAA5C;;AACA,UAAIgB,SAAJ,EAAe;AACbC,QAAAA,iBAAiB,CAACN,IAAlB,CAAuBQ,gCAAgC,CAACV,KAAK,CAACG,MAAP,CAAvD;AACD;;AACD,UAAIH,KAAK,CAACG,MAAN,CAAaI,SAAb,KAA2B,KAA/B,EAAsC;AACpCA,QAAAA,SAAS,GAAG,KAAZ;AACD;AACF,KARD;;AAUA,UAAMI,gBAAgB,GAAGC,mCAAkBC,YAAlB,CAA+BL,iBAA/B,CAAzB;;AACA,UAAMM,MAAM,GAAG;AACbvB,MAAAA,YADa;AAEbwB,MAAAA,UAAU,EAAEJ,gBAFC;AAGbJ,MAAAA,SAHa;AAIbF,MAAAA,cAAc,EAAEC,aAAa,CAACU,MAAd,GAAuBV,aAAa,CAAC,CAAD,CAAb,CAAiBF,WAAxC,GAAsD,CAAC;AAJ1D,KAAf;AAMA,WAAOU,MAAP;AACD;AAED;AACF;AACA;AACA;AACA;AACA;AACA;;;AACEG,EAAAA,YAAY,CAACC,OAAD,EAAkBC,WAAlB,EAAuCC,eAAvC,EAA6DC,IAA7D,EAAoG;AAAA;;AAC9G,UAAMC,UAAU,4BAAG,KAAKvC,QAAL,CAAcmC,OAAd,CAAH,yEAA6B,EAA7C;AACA,+BAAOI,UAAP,EAAmB;AAAE,OAACH,WAAD,GAAeC;AAAjB,KAAnB;AACA,+BAAO,KAAKrC,QAAZ,EAAsB;AAAE,OAACmC,OAAD,GAAWI;AAAb,KAAtB;AACA,SAAKtC,YAAL,CAAkBiC,YAAlB,CAA+BM,2BAAeC,EAA9C,EAAkD,KAAKzC,QAAvD,EAAiE;AAC/D0C,MAAAA,gBAAgB,EAAE,CAAAJ,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAEI,gBAAN,MAA2B,IADkB;AAE/DC,MAAAA,aAAa,EAAE;AAFgD,KAAjE;AAID;;AAEoB,eAARC,QAAQ,CAAC,CAAC3C,YAAD,CAAD,EAA+BmB,MAA/B,EAAuC;AAC1D,WAAO,IAAItB,YAAJ,CAAiBsB,MAAjB,EAAyBnB,YAAzB,CAAP;AACD;;AA7FuB;;;gCAAbH,Y,aACM+C,kB;gCADN/C,Y,kBAEW,CAACgD,sBAAD,C;;AA8FxB,SAASnB,gCAAT,CAA0CP,MAA1C,EAAuE;AACrE,QAAM2B,aAAa,GAAG,oBAAK3B,MAAL,EAAavB,eAAb,CAAtB;;AACA,QAAMmC,UAAU,GAAGH,mCAAkBmB,gBAAlB,CAAmCD,aAAnC,CAAnB;;AACA,SAAOf,UAAP;AACD;;AAEDQ,2BAAeS,UAAf,CAA0BnD,YAA1B","sourcesContent":["import { MainRuntime } from '@teambit/cli';\nimport { ConfigAspect } from '@teambit/config';\nimport type { ConfigMain } from '@teambit/config';\nimport ConsumerOverrides from '@teambit/legacy/dist/consumer/config/consumer-overrides';\nimport { ExtensionDataList } from '@teambit/legacy/dist/consumer/config/extension-data';\nimport { PathLinuxRelative } from '@teambit/legacy/dist/utils/path';\nimport { assign } from 'comment-json';\nimport { omit, forEach } from 'lodash';\nimport {\n MatchedPatternWithConfig,\n isMatchPattern,\n sortMatchesBySpecificity,\n} from '@teambit/workspace.modules.match-pattern';\nimport { InvalidScopeName, isValidScopeName } from '@teambit/legacy-bit-id';\nimport { VariantsAspect } from './variants.aspect';\n\nexport type Patterns = { [pattern: string]: Record<string, any> };\n\nexport type VariantsComponentConfig = {\n propagate: boolean;\n exclude?: string[];\n defaultScope?: string;\n extensions: ExtensionDataList;\n maxSpecificity: number;\n};\n\nconst INTERNAL_FIELDS = ['propagate', 'exclude', 'defaultScope'];\n\nexport class VariantsMain {\n static runtime = MainRuntime;\n static dependencies = [ConfigAspect];\n\n _loadedLegacy: ConsumerOverrides;\n\n constructor(private patterns: Patterns, private configAspect: ConfigMain) {\n this._loadedLegacy = ConsumerOverrides.load(this.patterns);\n this.validateConfig();\n }\n\n private validateConfig() {\n forEach(this.patterns, (patternConfig: Record<string, any>, pattern: string) => {\n if (patternConfig.defaultScope && !isValidScopeName(patternConfig.defaultScope)) {\n throw new InvalidScopeName(patternConfig.defaultScope, undefined, pattern);\n }\n });\n }\n\n raw(): Patterns {\n return this.patterns;\n }\n\n /**\n * Get all the patterns defined in the variants section of the workspace as the legacy ConsumerOverrides format\n */\n legacy(): ConsumerOverrides {\n // return ConsumerOverrides.load(this.patterns);\n return this._loadedLegacy;\n }\n\n /**\n * Gets the config for specific component after merge all matching patterns of the component dir and id in the variants section\n * @param rootDir\n */\n byRootDirAndName(rootDir: PathLinuxRelative, componentName: string): VariantsComponentConfig | undefined {\n const matches: MatchedPatternWithConfig[] = [];\n forEach(this.patterns, (patternConfig, pattern) => {\n const match = isMatchPattern(rootDir, componentName, pattern);\n\n // Ignore matches with exclude matches\n if (match.match && !match.excluded) {\n matches.push({\n config: patternConfig,\n specificity: match.maxSpecificity,\n });\n }\n });\n\n const sortedMatches: MatchedPatternWithConfig[] = sortMatchesBySpecificity(matches);\n\n let defaultScope;\n let propagate = true;\n const extensionsToMerge: ExtensionDataList[] = [];\n sortedMatches.forEach((match) => {\n defaultScope = defaultScope || match.config.defaultScope;\n if (propagate) {\n extensionsToMerge.push(getExtensionFromPatternRawConfig(match.config));\n }\n if (match.config.propagate === false) {\n propagate = false;\n }\n });\n\n const mergedExtensions = ExtensionDataList.mergeConfigs(extensionsToMerge);\n const result = {\n defaultScope,\n extensions: mergedExtensions,\n propagate,\n maxSpecificity: sortedMatches.length ? sortedMatches[0].specificity : -1,\n };\n return result;\n }\n\n /**\n * Updates the specified extension object of the specified variant.\n * @param {string} variant - The variant pattern.\n * @param {string} extensionId - The extension ID.\n * @param {Object} extensionConfig - The extension configuration.\n * @param {boolean} opts.overrideExisting - When true, any existing entries are overriden.\n */\n setExtension(variant: string, extensionId: string, extensionConfig: any, opts?: { overrideExisting?: boolean }) {\n const newVariant = this.patterns[variant] ?? {};\n assign(newVariant, { [extensionId]: extensionConfig });\n assign(this.patterns, { [variant]: newVariant });\n this.configAspect.setExtension(VariantsAspect.id, this.patterns, {\n overrideExisting: opts?.overrideExisting === true,\n ignoreVersion: true,\n });\n }\n\n static async provider([configAspect]: [ConfigMain], config) {\n return new VariantsMain(config, configAspect);\n }\n}\n\nfunction getExtensionFromPatternRawConfig(config: Record<string, any>) {\n const rawExtensions = omit(config, INTERNAL_FIELDS);\n const extensions = ExtensionDataList.fromConfigObject(rawExtensions);\n return extensions;\n}\n\nVariantsAspect.addRuntime(VariantsMain);\n"]}
package/package.json CHANGED
@@ -1,21 +1,23 @@
1
1
  {
2
2
  "name": "@teambit/variants",
3
- "version": "0.0.479",
3
+ "version": "0.0.483",
4
4
  "homepage": "https://bit.dev/teambit/workspace/variants",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "variants",
9
- "version": "0.0.479"
9
+ "version": "0.0.483"
10
10
  },
11
11
  "dependencies": {
12
12
  "@teambit/harmony": "0.2.11",
13
+ "comment-json": "3.0.3",
13
14
  "lodash": "4.17.21",
14
15
  "@babel/runtime": "7.12.18",
15
16
  "core-js": "^3.0.0",
16
- "@teambit/cli": "0.0.392",
17
- "@teambit/legacy-bit-id": "0.0.381",
18
- "@teambit/workspace.modules.match-pattern": "0.0.471"
17
+ "@teambit/cli": "0.0.395",
18
+ "@teambit/config": "0.0.407",
19
+ "@teambit/legacy-bit-id": "0.0.384",
20
+ "@teambit/workspace.modules.match-pattern": "0.0.474"
19
21
  },
20
22
  "devDependencies": {
21
23
  "@types/lodash": "4.14.165",
@@ -25,10 +27,10 @@
25
27
  "@types/react-dom": "^17.0.5",
26
28
  "@types/react": "^17.0.8",
27
29
  "@types/node": "12.20.4",
28
- "@teambit/workspace.aspect-docs.variants": "0.0.111"
30
+ "@teambit/workspace.aspect-docs.variants": "0.0.115"
29
31
  },
30
32
  "peerDependencies": {
31
- "@teambit/legacy": "1.0.178",
33
+ "@teambit/legacy": "1.0.181",
32
34
  "react-dom": "^16.8.0 || ^17.0.0",
33
35
  "react": "^16.8.0 || ^17.0.0"
34
36
  },
@@ -56,27 +58,12 @@
56
58
  "react": "-"
57
59
  },
58
60
  "peerDependencies": {
59
- "@teambit/legacy": "1.0.178",
61
+ "@teambit/legacy": "1.0.181",
60
62
  "react-dom": "^16.8.0 || ^17.0.0",
61
63
  "react": "^16.8.0 || ^17.0.0"
62
64
  }
63
65
  }
64
66
  },
65
- "files": [
66
- "dist",
67
- "!dist/tsconfig.tsbuildinfo",
68
- "**/*.md",
69
- "**/*.mdx",
70
- "**/*.js",
71
- "**/*.json",
72
- "**/*.sass",
73
- "**/*.scss",
74
- "**/*.less",
75
- "**/*.css",
76
- "**/*.css",
77
- "**/*.jpeg",
78
- "**/*.gif"
79
- ],
80
67
  "private": false,
81
68
  "engines": {
82
69
  "node": ">=12.22.0"
@@ -0,0 +1,29 @@
1
+ declare module '*.png' {
2
+ const value: any;
3
+ export = value;
4
+ }
5
+ declare module '*.svg' {
6
+ import type { FunctionComponent, SVGProps } from 'react';
7
+
8
+ export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
9
+ const src: string;
10
+ export default src;
11
+ }
12
+
13
+ // @TODO Gilad
14
+ declare module '*.jpg' {
15
+ const value: any;
16
+ export = value;
17
+ }
18
+ declare module '*.jpeg' {
19
+ const value: any;
20
+ export = value;
21
+ }
22
+ declare module '*.gif' {
23
+ const value: any;
24
+ export = value;
25
+ }
26
+ declare module '*.bmp' {
27
+ const value: any;
28
+ export = value;
29
+ }
@@ -0,0 +1,42 @@
1
+ declare module '*.module.css' {
2
+ const classes: { readonly [key: string]: string };
3
+ export default classes;
4
+ }
5
+ declare module '*.module.scss' {
6
+ const classes: { readonly [key: string]: string };
7
+ export default classes;
8
+ }
9
+ declare module '*.module.sass' {
10
+ const classes: { readonly [key: string]: string };
11
+ export default classes;
12
+ }
13
+
14
+ declare module '*.module.less' {
15
+ const classes: { readonly [key: string]: string };
16
+ export default classes;
17
+ }
18
+
19
+ declare module '*.less' {
20
+ const classes: { readonly [key: string]: string };
21
+ export default classes;
22
+ }
23
+
24
+ declare module '*.css' {
25
+ const classes: { readonly [key: string]: string };
26
+ export default classes;
27
+ }
28
+
29
+ declare module '*.sass' {
30
+ const classes: { readonly [key: string]: string };
31
+ export default classes;
32
+ }
33
+
34
+ declare module '*.scss' {
35
+ const classes: { readonly [key: string]: string };
36
+ export default classes;
37
+ }
38
+
39
+ declare module '*.mdx' {
40
+ const component: any;
41
+ export default component;
42
+ }