@teambit/stash 0.0.1

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.
@@ -0,0 +1,4 @@
1
+ import { StashAspect } from './stash.aspect';
2
+ export type { StashMain } from './stash.main.runtime';
3
+ export default StashAspect;
4
+ export { StashAspect };
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "StashAspect", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _stash().StashAspect;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+ function _stash() {
14
+ const data = require("./stash.aspect");
15
+ _stash = function () {
16
+ return data;
17
+ };
18
+ return data;
19
+ }
20
+ var _default = _stash().StashAspect;
21
+ exports.default = _default;
22
+
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StashAspect"],"sources":["index.ts"],"sourcesContent":["import { StashAspect } from './stash.aspect';\n\nexport type { StashMain } from './stash.main.runtime';\nexport default StashAspect;\nexport { StashAspect };\n"],"mappings":";;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAA6C,eAG9BA,oBAAW;AAAA"}
@@ -0,0 +1,7 @@
1
+ ;
2
+ ;
3
+
4
+ export const compositions = [];
5
+ export const overview = [];
6
+
7
+ export const compositions_metadata = {"compositions":[]};
@@ -0,0 +1,23 @@
1
+ import { ComponentID } from '@teambit/component-id';
2
+ import { Ref } from '@teambit/legacy/dist/scope/objects';
3
+ import { Workspace } from '@teambit/workspace';
4
+ export declare type StashCompData = {
5
+ id: ComponentID;
6
+ hash: Ref;
7
+ };
8
+ export declare type StashMetadata = {
9
+ message?: string;
10
+ };
11
+ export declare class StashData {
12
+ readonly metadata: StashMetadata;
13
+ readonly stashCompsData: StashCompData[];
14
+ constructor(metadata: StashMetadata, stashCompsData: StashCompData[]);
15
+ toObject(): {
16
+ metadata: StashMetadata;
17
+ stashCompsData: {
18
+ id: import("@teambit/component-id").ComponentIdObj;
19
+ hash: string;
20
+ }[];
21
+ };
22
+ static fromObject(obj: Record<string, any>, workspace: Workspace): Promise<StashData>;
23
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.iterator.js");
4
+ require("core-js/modules/es.promise.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.StashData = void 0;
9
+ function _componentId() {
10
+ const data = require("@teambit/component-id");
11
+ _componentId = function () {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function _objects() {
17
+ const data = require("@teambit/legacy/dist/scope/objects");
18
+ _objects = function () {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ class StashData {
24
+ constructor(metadata, stashCompsData) {
25
+ this.metadata = metadata;
26
+ this.stashCompsData = stashCompsData;
27
+ }
28
+ toObject() {
29
+ return {
30
+ metadata: this.metadata,
31
+ stashCompsData: this.stashCompsData.map(({
32
+ id,
33
+ hash
34
+ }) => ({
35
+ // id: { scope: id._legacy.scope, name: id.fullName },
36
+ id: id.changeVersion(undefined).toObject(),
37
+ hash: hash.toString()
38
+ }))
39
+ };
40
+ }
41
+ static async fromObject(obj, workspace) {
42
+ const stashCompsData = await Promise.all(obj.stashCompsData.map(async compData => {
43
+ const id = _componentId().ComponentID.fromObject(compData.id);
44
+ const resolved = await workspace.resolveComponentId(id);
45
+ return {
46
+ id: resolved,
47
+ hash: _objects().Ref.from(compData.hash)
48
+ };
49
+ }));
50
+ return new StashData(obj.metadata, stashCompsData);
51
+ }
52
+ }
53
+ exports.StashData = StashData;
54
+
55
+ //# sourceMappingURL=stash-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StashData","constructor","metadata","stashCompsData","toObject","map","id","hash","changeVersion","undefined","toString","fromObject","obj","workspace","Promise","all","compData","ComponentID","resolved","resolveComponentId","Ref","from"],"sources":["stash-data.ts"],"sourcesContent":["import { ComponentID } from '@teambit/component-id';\nimport { Ref } from '@teambit/legacy/dist/scope/objects';\nimport { Workspace } from '@teambit/workspace';\n\nexport type StashCompData = { id: ComponentID; hash: Ref };\nexport type StashMetadata = { message?: string };\n\nexport class StashData {\n constructor(readonly metadata: StashMetadata, readonly stashCompsData: StashCompData[]) {}\n\n toObject() {\n return {\n metadata: this.metadata,\n stashCompsData: this.stashCompsData.map(({ id, hash }) => ({\n // id: { scope: id._legacy.scope, name: id.fullName },\n id: id.changeVersion(undefined).toObject(),\n hash: hash.toString(),\n })),\n };\n }\n\n static async fromObject(obj: Record<string, any>, workspace: Workspace): Promise<StashData> {\n const stashCompsData = await Promise.all(\n obj.stashCompsData.map(async (compData) => {\n const id = ComponentID.fromObject(compData.id);\n const resolved = await workspace.resolveComponentId(id);\n return {\n id: resolved,\n hash: Ref.from(compData.hash),\n };\n })\n );\n return new StashData(obj.metadata, stashCompsData);\n }\n}\n"],"mappings":";;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMO,MAAMA,SAAS,CAAC;EACrBC,WAAW,CAAUC,QAAuB,EAAWC,cAA+B,EAAE;IAAA,KAAnED,QAAuB,GAAvBA,QAAuB;IAAA,KAAWC,cAA+B,GAA/BA,cAA+B;EAAG;EAEzFC,QAAQ,GAAG;IACT,OAAO;MACLF,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBC,cAAc,EAAE,IAAI,CAACA,cAAc,CAACE,GAAG,CAAC,CAAC;QAAEC,EAAE;QAAEC;MAAK,CAAC,MAAM;QACzD;QACAD,EAAE,EAAEA,EAAE,CAACE,aAAa,CAACC,SAAS,CAAC,CAACL,QAAQ,EAAE;QAC1CG,IAAI,EAAEA,IAAI,CAACG,QAAQ;MACrB,CAAC,CAAC;IACJ,CAAC;EACH;EAEA,aAAaC,UAAU,CAACC,GAAwB,EAAEC,SAAoB,EAAsB;IAC1F,MAAMV,cAAc,GAAG,MAAMW,OAAO,CAACC,GAAG,CACtCH,GAAG,CAACT,cAAc,CAACE,GAAG,CAAC,MAAOW,QAAQ,IAAK;MACzC,MAAMV,EAAE,GAAGW,0BAAW,CAACN,UAAU,CAACK,QAAQ,CAACV,EAAE,CAAC;MAC9C,MAAMY,QAAQ,GAAG,MAAML,SAAS,CAACM,kBAAkB,CAACb,EAAE,CAAC;MACvD,OAAO;QACLA,EAAE,EAAEY,QAAQ;QACZX,IAAI,EAAEa,cAAG,CAACC,IAAI,CAACL,QAAQ,CAACT,IAAI;MAC9B,CAAC;IACH,CAAC,CAAC,CACH;IACD,OAAO,IAAIP,SAAS,CAACY,GAAG,CAACV,QAAQ,EAAEC,cAAc,CAAC;EACpD;AACF;AAAC"}
@@ -0,0 +1,13 @@
1
+ import { Workspace } from '@teambit/workspace';
2
+ import { StashData } from './stash-data';
3
+ export declare class StashFiles {
4
+ private workspace;
5
+ constructor(workspace: Workspace);
6
+ getPath(): string;
7
+ getStashFiles(): Promise<string[]>;
8
+ getLatestStashFile(): Promise<string | undefined>;
9
+ getNextStashFileName(): Promise<string>;
10
+ deleteStashFile(filename: string): Promise<void>;
11
+ saveStashData(stashData: StashData): Promise<void>;
12
+ getStashData(filename: string): Promise<StashData>;
13
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ require("core-js/modules/es.array.sort.js");
5
+ require("core-js/modules/es.promise.js");
6
+ require("core-js/modules/es.regexp.exec.js");
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.StashFiles = void 0;
11
+ function _globby() {
12
+ const data = _interopRequireDefault(require("globby"));
13
+ _globby = function () {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _path() {
19
+ const data = _interopRequireDefault(require("path"));
20
+ _path = function () {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
25
+ function _fsExtra() {
26
+ const data = _interopRequireDefault(require("fs-extra"));
27
+ _fsExtra = function () {
28
+ return data;
29
+ };
30
+ return data;
31
+ }
32
+ function _stashData() {
33
+ const data = require("./stash-data");
34
+ _stashData = function () {
35
+ return data;
36
+ };
37
+ return data;
38
+ }
39
+ const STASH_DIR = 'stash';
40
+ const STASH_FILE_PREFIX = 'stash';
41
+ class StashFiles {
42
+ constructor(workspace) {
43
+ this.workspace = workspace;
44
+ }
45
+ getPath() {
46
+ return _path().default.join(this.workspace.scope.path, STASH_DIR);
47
+ }
48
+ async getStashFiles() {
49
+ const stashPath = this.getPath();
50
+ const files = await (0, _globby().default)(`${STASH_FILE_PREFIX}-*`, {
51
+ cwd: stashPath
52
+ });
53
+ return files;
54
+ }
55
+ async getLatestStashFile() {
56
+ const files = await this.getStashFiles();
57
+ const latest = files.sort().pop();
58
+ return latest;
59
+ }
60
+ async getNextStashFileName() {
61
+ const latest = await this.getLatestStashFile();
62
+ const latestIndex = latest ? parseInt(latest.split('-')[1]) : 0;
63
+ return `${STASH_FILE_PREFIX}-${latestIndex + 1}.json`;
64
+ }
65
+ async deleteStashFile(filename) {
66
+ await _fsExtra().default.remove(_path().default.join(this.getPath(), filename));
67
+ }
68
+ async saveStashData(stashData) {
69
+ const nextStashFile = await this.getNextStashFileName();
70
+ const stashPath = this.getPath();
71
+ const filePath = _path().default.join(stashPath, nextStashFile);
72
+ await _fsExtra().default.outputFile(filePath, JSON.stringify(stashData.toObject(), undefined, 4));
73
+ }
74
+ async getStashData(filename) {
75
+ const stashPath = this.getPath();
76
+ const filePath = _path().default.join(stashPath, filename);
77
+ const content = await _fsExtra().default.readFile(filePath, 'utf8');
78
+ const data = JSON.parse(content);
79
+ return _stashData().StashData.fromObject(data, this.workspace);
80
+ }
81
+ }
82
+ exports.StashFiles = StashFiles;
83
+
84
+ //# sourceMappingURL=stash-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["STASH_DIR","STASH_FILE_PREFIX","StashFiles","constructor","workspace","getPath","path","join","scope","getStashFiles","stashPath","files","globby","cwd","getLatestStashFile","latest","sort","pop","getNextStashFileName","latestIndex","parseInt","split","deleteStashFile","filename","fs","remove","saveStashData","stashData","nextStashFile","filePath","outputFile","JSON","stringify","toObject","undefined","getStashData","content","readFile","data","parse","StashData","fromObject"],"sources":["stash-files.ts"],"sourcesContent":["import { Workspace } from '@teambit/workspace';\nimport globby from 'globby';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { StashData } from './stash-data';\n\nconst STASH_DIR = 'stash';\nconst STASH_FILE_PREFIX = 'stash';\n\nexport class StashFiles {\n constructor(private workspace: Workspace) {}\n\n getPath() {\n return path.join(this.workspace.scope.path, STASH_DIR);\n }\n\n async getStashFiles(): Promise<string[]> {\n const stashPath = this.getPath();\n const files = await globby(`${STASH_FILE_PREFIX}-*`, { cwd: stashPath });\n return files;\n }\n\n async getLatestStashFile(): Promise<string | undefined> {\n const files = await this.getStashFiles();\n const latest = files.sort().pop();\n return latest;\n }\n\n async getNextStashFileName(): Promise<string> {\n const latest = await this.getLatestStashFile();\n const latestIndex = latest ? parseInt(latest.split('-')[1]) : 0;\n return `${STASH_FILE_PREFIX}-${latestIndex + 1}.json`;\n }\n\n async deleteStashFile(filename: string) {\n await fs.remove(path.join(this.getPath(), filename));\n }\n\n async saveStashData(stashData: StashData) {\n const nextStashFile = await this.getNextStashFileName();\n const stashPath = this.getPath();\n const filePath = path.join(stashPath, nextStashFile);\n await fs.outputFile(filePath, JSON.stringify(stashData.toObject(), undefined, 4));\n }\n\n async getStashData(filename: string): Promise<StashData> {\n const stashPath = this.getPath();\n const filePath = path.join(stashPath, filename);\n const content = await fs.readFile(filePath, 'utf8');\n const data = JSON.parse(content);\n return StashData.fromObject(data, this.workspace);\n }\n}\n"],"mappings":";;;;;;;;;;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;AAEA,MAAMA,SAAS,GAAG,OAAO;AACzB,MAAMC,iBAAiB,GAAG,OAAO;AAE1B,MAAMC,UAAU,CAAC;EACtBC,WAAW,CAASC,SAAoB,EAAE;IAAA,KAAtBA,SAAoB,GAApBA,SAAoB;EAAG;EAE3CC,OAAO,GAAG;IACR,OAAOC,eAAI,CAACC,IAAI,CAAC,IAAI,CAACH,SAAS,CAACI,KAAK,CAACF,IAAI,EAAEN,SAAS,CAAC;EACxD;EAEA,MAAMS,aAAa,GAAsB;IACvC,MAAMC,SAAS,GAAG,IAAI,CAACL,OAAO,EAAE;IAChC,MAAMM,KAAK,GAAG,MAAM,IAAAC,iBAAM,EAAE,GAAEX,iBAAkB,IAAG,EAAE;MAAEY,GAAG,EAAEH;IAAU,CAAC,CAAC;IACxE,OAAOC,KAAK;EACd;EAEA,MAAMG,kBAAkB,GAAgC;IACtD,MAAMH,KAAK,GAAG,MAAM,IAAI,CAACF,aAAa,EAAE;IACxC,MAAMM,MAAM,GAAGJ,KAAK,CAACK,IAAI,EAAE,CAACC,GAAG,EAAE;IACjC,OAAOF,MAAM;EACf;EAEA,MAAMG,oBAAoB,GAAoB;IAC5C,MAAMH,MAAM,GAAG,MAAM,IAAI,CAACD,kBAAkB,EAAE;IAC9C,MAAMK,WAAW,GAAGJ,MAAM,GAAGK,QAAQ,CAACL,MAAM,CAACM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,OAAQ,GAAEpB,iBAAkB,IAAGkB,WAAW,GAAG,CAAE,OAAM;EACvD;EAEA,MAAMG,eAAe,CAACC,QAAgB,EAAE;IACtC,MAAMC,kBAAE,CAACC,MAAM,CAACnB,eAAI,CAACC,IAAI,CAAC,IAAI,CAACF,OAAO,EAAE,EAAEkB,QAAQ,CAAC,CAAC;EACtD;EAEA,MAAMG,aAAa,CAACC,SAAoB,EAAE;IACxC,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACV,oBAAoB,EAAE;IACvD,MAAMR,SAAS,GAAG,IAAI,CAACL,OAAO,EAAE;IAChC,MAAMwB,QAAQ,GAAGvB,eAAI,CAACC,IAAI,CAACG,SAAS,EAAEkB,aAAa,CAAC;IACpD,MAAMJ,kBAAE,CAACM,UAAU,CAACD,QAAQ,EAAEE,IAAI,CAACC,SAAS,CAACL,SAAS,CAACM,QAAQ,EAAE,EAAEC,SAAS,EAAE,CAAC,CAAC,CAAC;EACnF;EAEA,MAAMC,YAAY,CAACZ,QAAgB,EAAsB;IACvD,MAAMb,SAAS,GAAG,IAAI,CAACL,OAAO,EAAE;IAChC,MAAMwB,QAAQ,GAAGvB,eAAI,CAACC,IAAI,CAACG,SAAS,EAAEa,QAAQ,CAAC;IAC/C,MAAMa,OAAO,GAAG,MAAMZ,kBAAE,CAACa,QAAQ,CAACR,QAAQ,EAAE,MAAM,CAAC;IACnD,MAAMS,IAAI,GAAGP,IAAI,CAACQ,KAAK,CAACH,OAAO,CAAC;IAChC,OAAOI,sBAAS,CAACC,UAAU,CAACH,IAAI,EAAE,IAAI,CAAClC,SAAS,CAAC;EACnD;AACF;AAAC"}
@@ -0,0 +1,2 @@
1
+ import { Aspect } from '@teambit/harmony';
2
+ export declare const StashAspect: Aspect;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StashAspect = void 0;
7
+ function _harmony() {
8
+ const data = require("@teambit/harmony");
9
+ _harmony = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ const StashAspect = _harmony().Aspect.create({
15
+ id: 'teambit.component/stash'
16
+ });
17
+ exports.StashAspect = StashAspect;
18
+
19
+ //# sourceMappingURL=stash.aspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StashAspect","Aspect","create","id"],"sources":["stash.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const StashAspect = Aspect.create({\n id: 'teambit.component/stash',\n});\n"],"mappings":";;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEO,MAAMA,WAAW,GAAGC,iBAAM,CAACC,MAAM,CAAC;EACvCC,EAAE,EAAE;AACN,CAAC,CAAC;AAAC"}
@@ -0,0 +1,40 @@
1
+ import { Command, CommandOptions } from '@teambit/cli';
2
+ import { StashMain } from './stash.main.runtime';
3
+ export declare class StashSaveCmd implements Command {
4
+ private stash;
5
+ name: string;
6
+ description: string;
7
+ group: string;
8
+ options: CommandOptions;
9
+ loader: boolean;
10
+ constructor(stash: StashMain);
11
+ report(_arg: any, { pattern, message, }: {
12
+ pattern?: string;
13
+ message?: string;
14
+ }): Promise<string>;
15
+ }
16
+ export declare class StashLoadCmd implements Command {
17
+ private stash;
18
+ name: string;
19
+ description: string;
20
+ group: string;
21
+ options: CommandOptions;
22
+ loader: boolean;
23
+ constructor(stash: StashMain);
24
+ report(): Promise<string>;
25
+ }
26
+ export declare class StashCmd implements Command {
27
+ private stash;
28
+ name: string;
29
+ description: string;
30
+ group: string;
31
+ private: boolean;
32
+ options: CommandOptions;
33
+ loader: boolean;
34
+ commands: Command[];
35
+ constructor(stash: StashMain);
36
+ report(_arg: any, { pattern, message, }: {
37
+ pattern?: string;
38
+ message?: string;
39
+ }): Promise<string>;
40
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ require("core-js/modules/es.promise.js");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.StashSaveCmd = exports.StashLoadCmd = exports.StashCmd = void 0;
9
+ function _defineProperty2() {
10
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ _defineProperty2 = function () {
12
+ return data;
13
+ };
14
+ return data;
15
+ }
16
+ function _chalk() {
17
+ const data = _interopRequireDefault(require("chalk"));
18
+ _chalk = function () {
19
+ return data;
20
+ };
21
+ return data;
22
+ }
23
+ function _constants() {
24
+ const data = require("@teambit/legacy/dist/constants");
25
+ _constants = function () {
26
+ return data;
27
+ };
28
+ return data;
29
+ }
30
+ // eslint-disable-next-line max-classes-per-file
31
+
32
+ class StashSaveCmd {
33
+ constructor(stash) {
34
+ this.stash = stash;
35
+ (0, _defineProperty2().default)(this, "name", 'save');
36
+ (0, _defineProperty2().default)(this, "description", 'stash modified components');
37
+ (0, _defineProperty2().default)(this, "group", 'development');
38
+ (0, _defineProperty2().default)(this, "options", [['p', 'pattern', _constants().COMPONENT_PATTERN_HELP], ['m', 'message <string>', 'message to be attached to the stashed components']]);
39
+ (0, _defineProperty2().default)(this, "loader", true);
40
+ }
41
+ async report(_arg, {
42
+ pattern,
43
+ message
44
+ }) {
45
+ const compIds = await this.stash.save({
46
+ pattern,
47
+ message
48
+ });
49
+ return _chalk().default.green(`stashed ${compIds.length} components`);
50
+ }
51
+ }
52
+ exports.StashSaveCmd = StashSaveCmd;
53
+ class StashLoadCmd {
54
+ constructor(stash) {
55
+ this.stash = stash;
56
+ (0, _defineProperty2().default)(this, "name", 'load');
57
+ (0, _defineProperty2().default)(this, "description", 'load latest stash, checkout components and delete stash');
58
+ (0, _defineProperty2().default)(this, "group", 'development');
59
+ (0, _defineProperty2().default)(this, "options", []);
60
+ (0, _defineProperty2().default)(this, "loader", true);
61
+ }
62
+ async report() {
63
+ const compIds = await this.stash.loadLatest();
64
+ return _chalk().default.green(`checked out ${compIds.length} components according to the latest stash`);
65
+ }
66
+ }
67
+ exports.StashLoadCmd = StashLoadCmd;
68
+ class StashCmd {
69
+ // too early to make it public. it's still in a POC mode.
70
+
71
+ constructor(stash) {
72
+ this.stash = stash;
73
+ (0, _defineProperty2().default)(this, "name", 'stash [sub-command]');
74
+ (0, _defineProperty2().default)(this, "description", 'EXPERIMENTAL (more like a POC). stash modified components');
75
+ (0, _defineProperty2().default)(this, "group", 'development');
76
+ (0, _defineProperty2().default)(this, "private", true);
77
+ (0, _defineProperty2().default)(this, "options", [['p', 'pattern', _constants().COMPONENT_PATTERN_HELP], ['m', 'message <string>', 'message to be attached to the stashed components']]);
78
+ (0, _defineProperty2().default)(this, "loader", true);
79
+ (0, _defineProperty2().default)(this, "commands", []);
80
+ }
81
+ async report(_arg, {
82
+ pattern,
83
+ message
84
+ }) {
85
+ return new StashSaveCmd(this.stash).report(undefined, {
86
+ pattern,
87
+ message
88
+ });
89
+ }
90
+ }
91
+ exports.StashCmd = StashCmd;
92
+
93
+ //# sourceMappingURL=stash.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StashSaveCmd","constructor","stash","COMPONENT_PATTERN_HELP","report","_arg","pattern","message","compIds","save","chalk","green","length","StashLoadCmd","loadLatest","StashCmd","undefined"],"sources":["stash.cmd.ts"],"sourcesContent":["// eslint-disable-next-line max-classes-per-file\nimport chalk from 'chalk';\nimport { Command, CommandOptions } from '@teambit/cli';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport { StashMain } from './stash.main.runtime';\n\nexport class StashSaveCmd implements Command {\n name = 'save';\n description = 'stash modified components';\n group = 'development';\n options = [\n ['p', 'pattern', COMPONENT_PATTERN_HELP],\n ['m', 'message <string>', 'message to be attached to the stashed components'],\n ] as CommandOptions;\n loader = true;\n\n constructor(private stash: StashMain) {}\n\n async report(\n _arg: any,\n {\n pattern,\n message,\n }: {\n pattern?: string;\n message?: string;\n }\n ) {\n const compIds = await this.stash.save({ pattern, message });\n return chalk.green(`stashed ${compIds.length} components`);\n }\n}\n\nexport class StashLoadCmd implements Command {\n name = 'load';\n description = 'load latest stash, checkout components and delete stash';\n group = 'development';\n options = [] as CommandOptions;\n loader = true;\n\n constructor(private stash: StashMain) {}\n\n async report() {\n const compIds = await this.stash.loadLatest();\n return chalk.green(`checked out ${compIds.length} components according to the latest stash`);\n }\n}\n\nexport class StashCmd implements Command {\n name = 'stash [sub-command]';\n description = 'EXPERIMENTAL (more like a POC). stash modified components';\n group = 'development';\n private = true; // too early to make it public. it's still in a POC mode.\n options = [\n ['p', 'pattern', COMPONENT_PATTERN_HELP],\n ['m', 'message <string>', 'message to be attached to the stashed components'],\n ] as CommandOptions;\n loader = true;\n commands: Command[] = [];\n\n constructor(private stash: StashMain) {}\n\n async report(\n _arg: any,\n {\n pattern,\n message,\n }: {\n pattern?: string;\n message?: string;\n }\n ) {\n return new StashSaveCmd(this.stash).report(undefined, { pattern, message });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAHA;;AAMO,MAAMA,YAAY,CAAoB;EAU3CC,WAAW,CAASC,KAAgB,EAAE;IAAA,KAAlBA,KAAgB,GAAhBA,KAAgB;IAAA,8CAT7B,MAAM;IAAA,qDACC,2BAA2B;IAAA,+CACjC,aAAa;IAAA,iDACX,CACR,CAAC,GAAG,EAAE,SAAS,EAAEC,mCAAsB,CAAC,EACxC,CAAC,GAAG,EAAE,kBAAkB,EAAE,kDAAkD,CAAC,CAC9E;IAAA,gDACQ,IAAI;EAE0B;EAEvC,MAAMC,MAAM,CACVC,IAAS,EACT;IACEC,OAAO;IACPC;EAIF,CAAC,EACD;IACA,MAAMC,OAAO,GAAG,MAAM,IAAI,CAACN,KAAK,CAACO,IAAI,CAAC;MAAEH,OAAO;MAAEC;IAAQ,CAAC,CAAC;IAC3D,OAAOG,gBAAK,CAACC,KAAK,CAAE,WAAUH,OAAO,CAACI,MAAO,aAAY,CAAC;EAC5D;AACF;AAAC;AAEM,MAAMC,YAAY,CAAoB;EAO3CZ,WAAW,CAASC,KAAgB,EAAE;IAAA,KAAlBA,KAAgB,GAAhBA,KAAgB;IAAA,8CAN7B,MAAM;IAAA,qDACC,yDAAyD;IAAA,+CAC/D,aAAa;IAAA,iDACX,EAAE;IAAA,gDACH,IAAI;EAE0B;EAEvC,MAAME,MAAM,GAAG;IACb,MAAMI,OAAO,GAAG,MAAM,IAAI,CAACN,KAAK,CAACY,UAAU,EAAE;IAC7C,OAAOJ,gBAAK,CAACC,KAAK,CAAE,eAAcH,OAAO,CAACI,MAAO,2CAA0C,CAAC;EAC9F;AACF;AAAC;AAEM,MAAMG,QAAQ,CAAoB;EAIvB;;EAQhBd,WAAW,CAASC,KAAgB,EAAE;IAAA,KAAlBA,KAAgB,GAAhBA,KAAgB;IAAA,8CAX7B,qBAAqB;IAAA,qDACd,2DAA2D;IAAA,+CACjE,aAAa;IAAA,iDACX,IAAI;IAAA,iDACJ,CACR,CAAC,GAAG,EAAE,SAAS,EAAEC,mCAAsB,CAAC,EACxC,CAAC,GAAG,EAAE,kBAAkB,EAAE,kDAAkD,CAAC,CAC9E;IAAA,gDACQ,IAAI;IAAA,kDACS,EAAE;EAEe;EAEvC,MAAMC,MAAM,CACVC,IAAS,EACT;IACEC,OAAO;IACPC;EAIF,CAAC,EACD;IACA,OAAO,IAAIP,YAAY,CAAC,IAAI,CAACE,KAAK,CAAC,CAACE,MAAM,CAACY,SAAS,EAAE;MAAEV,OAAO;MAAEC;IAAQ,CAAC,CAAC;EAC7E;AACF;AAAC"}
@@ -0,0 +1,23 @@
1
+ import { Workspace } from '@teambit/workspace';
2
+ import { SnappingMain } from '@teambit/snapping';
3
+ import { ComponentID } from '@teambit/component';
4
+ import { CLIMain } from '@teambit/cli';
5
+ import { CheckoutMain } from '@teambit/checkout';
6
+ export declare class StashMain {
7
+ private workspace;
8
+ private checkout;
9
+ private snapping;
10
+ private stashFiles;
11
+ constructor(workspace: Workspace, checkout: CheckoutMain, snapping: SnappingMain);
12
+ save(options: {
13
+ message?: string;
14
+ pattern?: string;
15
+ }): Promise<ComponentID[]>;
16
+ loadLatest(): Promise<ComponentID[]>;
17
+ private addComponentDataToRepo;
18
+ static slots: never[];
19
+ static dependencies: import("@teambit/harmony").Aspect[];
20
+ static runtime: import("@teambit/harmony").RuntimeDefinition;
21
+ static provider([cli, workspace, checkout, snapping]: [CLIMain, Workspace, CheckoutMain, SnappingMain]): Promise<StashMain>;
22
+ }
23
+ export default StashMain;
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ require("core-js/modules/es.array.iterator.js");
5
+ require("core-js/modules/es.promise.js");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = exports.StashMain = void 0;
10
+ function _defineProperty2() {
11
+ const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ _defineProperty2 = function () {
13
+ return data;
14
+ };
15
+ return data;
16
+ }
17
+ function _workspace() {
18
+ const data = _interopRequireDefault(require("@teambit/workspace"));
19
+ _workspace = function () {
20
+ return data;
21
+ };
22
+ return data;
23
+ }
24
+ function _snapping() {
25
+ const data = _interopRequireDefault(require("@teambit/snapping"));
26
+ _snapping = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ function _bitError() {
32
+ const data = require("@teambit/bit-error");
33
+ _bitError = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
38
+ function _lodash() {
39
+ const data = require("lodash");
40
+ _lodash = function () {
41
+ return data;
42
+ };
43
+ return data;
44
+ }
45
+ function _cli() {
46
+ const data = require("@teambit/cli");
47
+ _cli = function () {
48
+ return data;
49
+ };
50
+ return data;
51
+ }
52
+ function _checkout() {
53
+ const data = _interopRequireDefault(require("@teambit/checkout"));
54
+ _checkout = function () {
55
+ return data;
56
+ };
57
+ return data;
58
+ }
59
+ function _stash() {
60
+ const data = require("./stash.aspect");
61
+ _stash = function () {
62
+ return data;
63
+ };
64
+ return data;
65
+ }
66
+ function _stash2() {
67
+ const data = require("./stash.cmd");
68
+ _stash2 = function () {
69
+ return data;
70
+ };
71
+ return data;
72
+ }
73
+ function _stashData() {
74
+ const data = require("./stash-data");
75
+ _stashData = function () {
76
+ return data;
77
+ };
78
+ return data;
79
+ }
80
+ function _stashFiles() {
81
+ const data = require("./stash-files");
82
+ _stashFiles = function () {
83
+ return data;
84
+ };
85
+ return data;
86
+ }
87
+ class StashMain {
88
+ constructor(workspace, checkout, snapping) {
89
+ this.workspace = workspace;
90
+ this.checkout = checkout;
91
+ this.snapping = snapping;
92
+ (0, _defineProperty2().default)(this, "stashFiles", void 0);
93
+ this.stashFiles = new (_stashFiles().StashFiles)(workspace);
94
+ }
95
+ async save(options) {
96
+ const compIds = options !== null && options !== void 0 && options.pattern ? await this.workspace.idsByPattern(options === null || options === void 0 ? void 0 : options.pattern) : await this.workspace.listIds();
97
+ const comps = await this.workspace.getMany(compIds);
98
+ const modifiedComps = (0, _lodash().compact)(await Promise.all(comps.map(async comp => {
99
+ if (!comp.head) return undefined; // it's new
100
+ const isModified = await this.workspace.isModified(comp);
101
+ if (isModified) return comp;
102
+ return undefined;
103
+ })));
104
+ if (!modifiedComps.length) return [];
105
+
106
+ // per comp: create Version object, save it in the local scope and return the hash. don't save anything in the .bitmap
107
+ const consumeComponents = modifiedComps.map(comp => comp.state._consumer);
108
+ await this.snapping._addFlattenedDependenciesToComponents(consumeComponents);
109
+ const hashPerId = await Promise.all(modifiedComps.map(async comp => {
110
+ const versionObj = await this.addComponentDataToRepo(comp);
111
+ return {
112
+ id: comp.id,
113
+ hash: versionObj.hash()
114
+ };
115
+ }));
116
+ await this.workspace.scope.legacyScope.objects.persist();
117
+ const stashData = new (_stashData().StashData)({
118
+ message: options === null || options === void 0 ? void 0 : options.message
119
+ }, hashPerId);
120
+ await this.stashFiles.saveStashData(stashData);
121
+
122
+ // reset all modified components
123
+ const modifiedCompIds = modifiedComps.map(c => c.id);
124
+ await this.checkout.checkout({
125
+ ids: modifiedCompIds,
126
+ skipNpmInstall: true,
127
+ reset: true
128
+ });
129
+ return modifiedCompIds;
130
+ }
131
+ async loadLatest() {
132
+ const stashFile = await this.stashFiles.getLatestStashFile();
133
+ if (!stashFile) {
134
+ throw new (_bitError().BitError)('no stashed components found');
135
+ }
136
+ const stashData = await this.stashFiles.getStashData(stashFile);
137
+ const compIds = stashData.stashCompsData.map(c => c.id);
138
+ const versionPerId = stashData.stashCompsData.map(c => c.id.changeVersion(c.hash.toString()));
139
+ await this.checkout.checkout({
140
+ ids: compIds,
141
+ skipNpmInstall: true,
142
+ versionPerId,
143
+ skipUpdatingBitmap: true
144
+ });
145
+ await this.stashFiles.deleteStashFile(stashFile);
146
+ return compIds;
147
+ }
148
+ async addComponentDataToRepo(component) {
149
+ const consumerComponent = component.state._consumer.clone();
150
+ consumerComponent.setNewVersion();
151
+ const {
152
+ version,
153
+ files
154
+ } = await this.workspace.scope.legacyScope.sources.consumerComponentToVersion(consumerComponent);
155
+ const repo = this.workspace.scope.legacyScope.objects;
156
+ repo.add(version);
157
+ files.forEach(file => repo.add(file.file));
158
+ return version;
159
+ }
160
+ static async provider([cli, workspace, checkout, snapping]) {
161
+ const stashMain = new StashMain(workspace, checkout, snapping);
162
+ const stashCmd = new (_stash2().StashCmd)(stashMain);
163
+ stashCmd.commands = [new (_stash2().StashSaveCmd)(stashMain), new (_stash2().StashLoadCmd)(stashMain)];
164
+ cli.register(stashCmd);
165
+ return stashMain;
166
+ }
167
+ }
168
+ exports.StashMain = StashMain;
169
+ (0, _defineProperty2().default)(StashMain, "slots", []);
170
+ (0, _defineProperty2().default)(StashMain, "dependencies", [_cli().CLIAspect, _workspace().default, _checkout().default, _snapping().default]);
171
+ (0, _defineProperty2().default)(StashMain, "runtime", _cli().MainRuntime);
172
+ _stash().StashAspect.addRuntime(StashMain);
173
+ var _default = StashMain;
174
+ exports.default = _default;
175
+
176
+ //# sourceMappingURL=stash.main.runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StashMain","constructor","workspace","checkout","snapping","stashFiles","StashFiles","save","options","compIds","pattern","idsByPattern","listIds","comps","getMany","modifiedComps","compact","Promise","all","map","comp","head","undefined","isModified","length","consumeComponents","state","_consumer","_addFlattenedDependenciesToComponents","hashPerId","versionObj","addComponentDataToRepo","id","hash","scope","legacyScope","objects","persist","stashData","StashData","message","saveStashData","modifiedCompIds","c","ids","skipNpmInstall","reset","loadLatest","stashFile","getLatestStashFile","BitError","getStashData","stashCompsData","versionPerId","changeVersion","toString","skipUpdatingBitmap","deleteStashFile","component","consumerComponent","clone","setNewVersion","version","files","sources","consumerComponentToVersion","repo","add","forEach","file","provider","cli","stashMain","stashCmd","StashCmd","commands","StashSaveCmd","StashLoadCmd","register","CLIAspect","WorkspaceAspect","CheckoutAspect","SnappingAspect","MainRuntime","StashAspect","addRuntime"],"sources":["stash.main.runtime.ts"],"sourcesContent":["import WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BitError } from '@teambit/bit-error';\nimport ConsumerComponent from '@teambit/legacy/dist/consumer/component';\nimport { compact } from 'lodash';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport CheckoutAspect, { CheckoutMain } from '@teambit/checkout';\nimport { StashAspect } from './stash.aspect';\nimport { StashCmd, StashLoadCmd, StashSaveCmd } from './stash.cmd';\nimport { StashData } from './stash-data';\nimport { StashFiles } from './stash-files';\n\nexport class StashMain {\n private stashFiles: StashFiles;\n constructor(private workspace: Workspace, private checkout: CheckoutMain, private snapping: SnappingMain) {\n this.stashFiles = new StashFiles(workspace);\n }\n\n async save(options: { message?: string; pattern?: string }): Promise<ComponentID[]> {\n const compIds = options?.pattern\n ? await this.workspace.idsByPattern(options?.pattern)\n : await this.workspace.listIds();\n const comps = await this.workspace.getMany(compIds);\n const modifiedComps = compact(\n await Promise.all(\n comps.map(async (comp) => {\n if (!comp.head) return undefined; // it's new\n const isModified = await this.workspace.isModified(comp);\n if (isModified) return comp;\n return undefined;\n })\n )\n );\n if (!modifiedComps.length) return [];\n\n // per comp: create Version object, save it in the local scope and return the hash. don't save anything in the .bitmap\n const consumeComponents = modifiedComps.map((comp) => comp.state._consumer);\n await this.snapping._addFlattenedDependenciesToComponents(consumeComponents);\n const hashPerId = await Promise.all(\n modifiedComps.map(async (comp) => {\n const versionObj = await this.addComponentDataToRepo(comp);\n return { id: comp.id, hash: versionObj.hash() };\n })\n );\n await this.workspace.scope.legacyScope.objects.persist();\n const stashData = new StashData({ message: options?.message }, hashPerId);\n await this.stashFiles.saveStashData(stashData);\n\n // reset all modified components\n const modifiedCompIds = modifiedComps.map((c) => c.id);\n await this.checkout.checkout({\n ids: modifiedCompIds,\n skipNpmInstall: true,\n reset: true,\n });\n\n return modifiedCompIds;\n }\n\n async loadLatest() {\n const stashFile = await this.stashFiles.getLatestStashFile();\n if (!stashFile) {\n throw new BitError('no stashed components found');\n }\n const stashData = await this.stashFiles.getStashData(stashFile);\n const compIds = stashData.stashCompsData.map((c) => c.id);\n const versionPerId = stashData.stashCompsData.map((c) => c.id.changeVersion(c.hash.toString()));\n\n await this.checkout.checkout({\n ids: compIds,\n skipNpmInstall: true,\n versionPerId,\n skipUpdatingBitmap: true,\n });\n\n await this.stashFiles.deleteStashFile(stashFile);\n\n return compIds;\n }\n\n private async addComponentDataToRepo(component: Component) {\n const consumerComponent = component.state._consumer.clone() as ConsumerComponent;\n consumerComponent.setNewVersion();\n const { version, files } = await this.workspace.scope.legacyScope.sources.consumerComponentToVersion(\n consumerComponent\n );\n const repo = this.workspace.scope.legacyScope.objects;\n repo.add(version);\n files.forEach((file) => repo.add(file.file));\n return version;\n }\n\n static slots = [];\n static dependencies = [CLIAspect, WorkspaceAspect, CheckoutAspect, SnappingAspect];\n static runtime = MainRuntime;\n static async provider([cli, workspace, checkout, snapping]: [CLIMain, Workspace, CheckoutMain, SnappingMain]) {\n const stashMain = new StashMain(workspace, checkout, snapping);\n const stashCmd = new StashCmd(stashMain);\n stashCmd.commands = [new StashSaveCmd(stashMain), new StashLoadCmd(stashMain)];\n cli.register(stashCmd);\n return stashMain;\n }\n}\n\nStashAspect.addRuntime(StashMain);\n\nexport default StashMain;\n"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@teambit/stash",
3
+ "version": "0.0.1",
4
+ "main": "dist/index.js",
5
+ "componentId": {
6
+ "scope": "teambit.component",
7
+ "name": "stash",
8
+ "version": "0.0.1"
9
+ },
10
+ "dependencies": {
11
+ "fs-extra": "10.0.0",
12
+ "globby": "11.0.1",
13
+ "chalk": "2.4.2",
14
+ "lodash": "4.17.21",
15
+ "core-js": "^3.0.0",
16
+ "@babel/runtime": "7.20.0",
17
+ "@teambit/component-id": "0.0.427",
18
+ "@teambit/harmony": "0.4.6",
19
+ "@teambit/workspace": "0.0.1063",
20
+ "@teambit/cli": "0.0.716",
21
+ "@teambit/bit-error": "0.0.402",
22
+ "@teambit/checkout": "0.0.232",
23
+ "@teambit/component": "0.0.1063",
24
+ "@teambit/snapping": "0.0.378"
25
+ },
26
+ "devDependencies": {
27
+ "@types/fs-extra": "9.0.7",
28
+ "@types/lodash": "4.14.165",
29
+ "@types/mocha": "9.1.0",
30
+ "@types/node": "12.20.4",
31
+ "@types/react": "^17.0.8",
32
+ "@types/react-dom": "^17.0.5",
33
+ "@types/jest": "^26.0.0",
34
+ "@types/testing-library__jest-dom": "5.9.5"
35
+ },
36
+ "peerDependencies": {
37
+ "@teambit/legacy": "1.0.496",
38
+ "react": "^16.8.0 || ^17.0.0",
39
+ "react-dom": "^16.8.0 || ^17.0.0"
40
+ },
41
+ "license": "Apache-2.0",
42
+ "private": false,
43
+ "engines": {
44
+ "node": ">=12.22.0"
45
+ },
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "https://github.com/teambit/bit"
49
+ },
50
+ "keywords": [
51
+ "bit",
52
+ "bit-aspect",
53
+ "components",
54
+ "collaboration",
55
+ "web",
56
+ "react",
57
+ "react-components",
58
+ "angular",
59
+ "angular-components"
60
+ ]
61
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable",
8
+ "ScriptHost"
9
+ ],
10
+ "target": "es2015",
11
+ "module": "commonjs",
12
+ "jsx": "react",
13
+ "allowJs": true,
14
+ "composite": true,
15
+ "declaration": true,
16
+ "sourceMap": true,
17
+ "skipLibCheck": true,
18
+ "experimentalDecorators": true,
19
+ "outDir": "dist",
20
+ "moduleResolution": "node",
21
+ "esModuleInterop": true,
22
+ "rootDir": ".",
23
+ "resolveJsonModule": true,
24
+ "emitDeclarationOnly": true,
25
+ "emitDecoratorMetadata": true,
26
+ "allowSyntheticDefaultImports": true,
27
+ "strictPropertyInitialization": false,
28
+ "strict": true,
29
+ "noImplicitAny": false,
30
+ "preserveConstEnums": true
31
+ },
32
+ "exclude": [
33
+ "dist",
34
+ "package.json"
35
+ ],
36
+ "include": [
37
+ "**/*",
38
+ "**/*.json"
39
+ ]
40
+ }
@@ -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
+ }