@jujulego/jill 2.0.0-beta.2 → 2.0.0-rc.2

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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/dist/commands/each.d.ts +16 -0
  4. package/dist/commands/each.d.ts.map +1 -0
  5. package/dist/commands/each.js +117 -0
  6. package/dist/commands/each.js.map +1 -0
  7. package/dist/commands/{list.command.d.ts → list.d.ts} +3 -5
  8. package/dist/commands/list.d.ts.map +1 -0
  9. package/dist/commands/list.js +170 -0
  10. package/dist/commands/list.js.map +1 -0
  11. package/dist/commands/run.d.ts +8 -0
  12. package/dist/commands/run.d.ts.map +1 -0
  13. package/dist/commands/run.js +59 -0
  14. package/dist/commands/run.js.map +1 -0
  15. package/dist/commands/tree.d.ts +3 -0
  16. package/dist/commands/tree.d.ts.map +1 -0
  17. package/dist/commands/tree.js +35 -0
  18. package/dist/commands/tree.js.map +1 -0
  19. package/dist/filters/affected.filter.d.ts +11 -0
  20. package/dist/filters/affected.filter.d.ts.map +1 -0
  21. package/dist/filters/affected.filter.js +82 -0
  22. package/dist/filters/affected.filter.js.map +1 -0
  23. package/dist/filters/index.d.ts +4 -0
  24. package/dist/filters/index.d.ts.map +1 -0
  25. package/dist/filters/index.js +21 -0
  26. package/dist/filters/index.js.map +1 -0
  27. package/dist/filters/pipeline.d.ts +11 -0
  28. package/dist/filters/pipeline.d.ts.map +1 -0
  29. package/dist/filters/pipeline.js +34 -0
  30. package/dist/filters/pipeline.js.map +1 -0
  31. package/dist/filters/private.filter.d.ts +7 -0
  32. package/dist/filters/private.filter.d.ts.map +1 -0
  33. package/dist/filters/private.filter.js +20 -0
  34. package/dist/filters/private.filter.js.map +1 -0
  35. package/dist/filters/scripts.filter.d.ts +7 -0
  36. package/dist/filters/scripts.filter.d.ts.map +1 -0
  37. package/dist/filters/scripts.filter.js +21 -0
  38. package/dist/filters/scripts.filter.js.map +1 -0
  39. package/dist/git.d.ts +16 -0
  40. package/dist/git.d.ts.map +1 -0
  41. package/dist/git.js +94 -0
  42. package/dist/git.js.map +1 -0
  43. package/dist/index.d.ts +7 -4
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +19 -33
  46. package/dist/index.js.map +1 -1
  47. package/dist/main.d.ts.map +1 -1
  48. package/dist/main.js +26 -62
  49. package/dist/main.js.map +1 -1
  50. package/dist/middlewares/global-config.d.ts +5 -0
  51. package/dist/middlewares/global-config.d.ts.map +1 -0
  52. package/dist/middlewares/global-config.js +29 -0
  53. package/dist/middlewares/global-config.js.map +1 -0
  54. package/dist/middlewares/index.d.ts +4 -0
  55. package/dist/middlewares/index.d.ts.map +1 -0
  56. package/dist/middlewares/index.js +21 -0
  57. package/dist/middlewares/index.js.map +1 -0
  58. package/dist/middlewares/load-project.d.ts +6 -0
  59. package/dist/middlewares/load-project.d.ts.map +1 -0
  60. package/dist/middlewares/load-project.js +41 -0
  61. package/dist/middlewares/load-project.js.map +1 -0
  62. package/dist/middlewares/load-workspace.d.ts +3 -0
  63. package/dist/middlewares/load-workspace.d.ts.map +1 -0
  64. package/dist/middlewares/load-workspace.js +42 -0
  65. package/dist/middlewares/load-workspace.js.map +1 -0
  66. package/dist/middlewares/setup-ink.d.ts +1 -0
  67. package/dist/middlewares/setup-ink.d.ts.map +1 -0
  68. package/dist/middlewares/setup-ink.js +22 -0
  69. package/dist/middlewares/setup-ink.js.map +1 -0
  70. package/dist/project/index.d.ts +2 -0
  71. package/dist/project/index.d.ts.map +1 -0
  72. package/dist/project/index.js +19 -0
  73. package/dist/project/index.js.map +1 -0
  74. package/dist/project/project.d.ts +25 -0
  75. package/dist/project/project.d.ts.map +1 -0
  76. package/dist/project/project.js +190 -0
  77. package/dist/project/project.js.map +1 -0
  78. package/dist/project/workspace.d.ts +34 -0
  79. package/dist/project/workspace.d.ts.map +1 -0
  80. package/dist/project/workspace.js +173 -0
  81. package/dist/project/workspace.js.map +1 -0
  82. package/dist/services/index.d.ts +4 -0
  83. package/dist/services/index.d.ts.map +1 -0
  84. package/dist/services/index.js +21 -0
  85. package/dist/services/index.js.map +1 -0
  86. package/dist/services/inversify.config.d.ts +11 -0
  87. package/dist/services/inversify.config.d.ts.map +1 -0
  88. package/dist/services/inversify.config.js +34 -0
  89. package/dist/services/inversify.config.js.map +1 -0
  90. package/dist/services/logger.service.d.ts +6 -0
  91. package/dist/services/logger.service.d.ts.map +1 -0
  92. package/dist/services/logger.service.js +75 -0
  93. package/dist/services/logger.service.js.map +1 -0
  94. package/dist/services/spinner.service.d.ts +18 -0
  95. package/dist/services/spinner.service.d.ts.map +1 -0
  96. package/dist/services/spinner.service.js +68 -0
  97. package/dist/services/spinner.service.js.map +1 -0
  98. package/dist/services/task-manager.service.d.ts +1 -0
  99. package/dist/services/task-manager.service.d.ts.map +1 -0
  100. package/dist/services/task-manager.service.js +18 -0
  101. package/dist/services/task-manager.service.js.map +1 -0
  102. package/dist/types.d.ts +1 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +7 -0
  105. package/dist/types.js.map +1 -0
  106. package/dist/ui/global-spinner.d.ts +2 -0
  107. package/dist/ui/global-spinner.d.ts.map +1 -0
  108. package/dist/ui/global-spinner.js +65 -0
  109. package/dist/ui/global-spinner.js.map +1 -0
  110. package/dist/ui/index.d.ts +7 -0
  111. package/dist/ui/index.d.ts.map +1 -0
  112. package/dist/ui/index.js +24 -0
  113. package/dist/ui/index.js.map +1 -0
  114. package/dist/ui/layout.d.ts +2 -0
  115. package/dist/ui/layout.d.ts.map +1 -0
  116. package/dist/ui/layout.js +20 -0
  117. package/dist/ui/layout.js.map +1 -0
  118. package/dist/ui/list.d.ts +6 -0
  119. package/dist/ui/list.d.ts.map +1 -0
  120. package/dist/ui/list.js +30 -0
  121. package/dist/ui/list.js.map +1 -0
  122. package/dist/{components/StaticLogs.d.ts → ui/static-logs.d.ts} +0 -0
  123. package/dist/ui/static-logs.d.ts.map +1 -0
  124. package/dist/ui/static-logs.js +63 -0
  125. package/dist/ui/static-logs.js.map +1 -0
  126. package/dist/ui/task-name.d.ts +6 -0
  127. package/dist/ui/task-name.d.ts.map +1 -0
  128. package/dist/ui/task-name.js +35 -0
  129. package/dist/ui/task-name.js.map +1 -0
  130. package/dist/ui/task-spinner.d.ts +6 -0
  131. package/dist/ui/task-spinner.d.ts.map +1 -0
  132. package/dist/ui/task-spinner.js +143 -0
  133. package/dist/ui/task-spinner.js.map +1 -0
  134. package/dist/ui/tasks-spinner.d.ts +6 -0
  135. package/dist/ui/tasks-spinner.d.ts.map +1 -0
  136. package/dist/ui/tasks-spinner.js +17 -0
  137. package/dist/ui/tasks-spinner.js.map +1 -0
  138. package/dist/{components/WorkspaceTree.d.ts → ui/workspace-tree.d.ts} +1 -1
  139. package/dist/ui/workspace-tree.d.ts.map +1 -0
  140. package/dist/ui/workspace-tree.js +87 -0
  141. package/dist/ui/workspace-tree.js.map +1 -0
  142. package/dist/utils.d.ts +13 -0
  143. package/dist/utils.d.ts.map +1 -0
  144. package/dist/utils.js +72 -0
  145. package/dist/utils.js.map +1 -0
  146. package/package.json +55 -56
  147. package/dist/application.context.d.ts +0 -28
  148. package/dist/application.context.d.ts.map +0 -1
  149. package/dist/application.context.js +0 -30
  150. package/dist/application.context.js.map +0 -1
  151. package/dist/application.d.ts +0 -7
  152. package/dist/application.d.ts.map +0 -1
  153. package/dist/application.js +0 -125
  154. package/dist/application.js.map +0 -1
  155. package/dist/command.d.ts +0 -8
  156. package/dist/command.d.ts.map +0 -1
  157. package/dist/command.js +0 -24
  158. package/dist/command.js.map +0 -1
  159. package/dist/commands/each.command.d.ts +0 -18
  160. package/dist/commands/each.command.d.ts.map +0 -1
  161. package/dist/commands/each.command.js +0 -176
  162. package/dist/commands/each.command.js.map +0 -1
  163. package/dist/commands/list.command.d.ts.map +0 -1
  164. package/dist/commands/list.command.js +0 -252
  165. package/dist/commands/list.command.js.map +0 -1
  166. package/dist/commands/run.command.d.ts +0 -12
  167. package/dist/commands/run.command.d.ts.map +0 -1
  168. package/dist/commands/run.command.js +0 -94
  169. package/dist/commands/run.command.js.map +0 -1
  170. package/dist/commands/tree.command.d.ts +0 -7
  171. package/dist/commands/tree.command.d.ts.map +0 -1
  172. package/dist/commands/tree.command.js +0 -35
  173. package/dist/commands/tree.command.js.map +0 -1
  174. package/dist/components/StaticLogs.d.ts.map +0 -1
  175. package/dist/components/StaticLogs.js +0 -77
  176. package/dist/components/StaticLogs.js.map +0 -1
  177. package/dist/components/WorkspaceTree.d.ts.map +0 -1
  178. package/dist/components/WorkspaceTree.js +0 -151
  179. package/dist/components/WorkspaceTree.js.map +0 -1
  180. package/dist/wrapper.d.ts +0 -6
  181. package/dist/wrapper.d.ts.map +0 -1
  182. package/dist/wrapper.js +0 -30
  183. package/dist/wrapper.js.map +0 -1
  184. package/dist/wrappers/project.wrapper.d.ts +0 -7
  185. package/dist/wrappers/project.wrapper.d.ts.map +0 -1
  186. package/dist/wrappers/project.wrapper.js +0 -105
  187. package/dist/wrappers/project.wrapper.js.map +0 -1
  188. package/dist/wrappers/workspace.wrapper.d.ts +0 -5
  189. package/dist/wrappers/workspace.wrapper.d.ts.map +0 -1
  190. package/dist/wrappers/workspace.wrapper.js +0 -108
  191. package/dist/wrappers/workspace.wrapper.js.map +0 -1
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "AffectedFilter", {
6
+ enumerable: true,
7
+ get: ()=>AffectedFilter
8
+ });
9
+ const _git = require("../git");
10
+ const _services = require("../services");
11
+ var __decorate = (void 0) && (void 0).__decorate || function(decorators, target, key, desc) {
12
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
16
+ };
17
+ class AffectedFilter {
18
+ // Constructor
19
+ constructor(format, fallback, sort){
20
+ this.format = format;
21
+ this.fallback = fallback;
22
+ this.sort = sort;
23
+ }
24
+ // Methods
25
+ async _formatRevision(wks) {
26
+ const logger = this._logger.child({
27
+ label: wks.name
28
+ });
29
+ // Format revision
30
+ let result = this.format;
31
+ result = result.replace(/(?<!\\)((?:\\\\)*)%name/g, `$1${wks.name}`);
32
+ result = result.replace(/\\(.)/g, '$1');
33
+ // Ask git to complete it
34
+ const sortArgs = this.sort ? [
35
+ '--sort',
36
+ this.sort
37
+ ] : [];
38
+ // - search in branches
39
+ if (result.includes('*')) {
40
+ const branches = await _git.Git.listBranches([
41
+ ...sortArgs,
42
+ result
43
+ ], {
44
+ cwd: wks.cwd,
45
+ logger: logger
46
+ });
47
+ if (branches.length > 0) {
48
+ result = branches[branches.length - 1];
49
+ }
50
+ }
51
+ // - search in tags
52
+ if (result.includes('*')) {
53
+ const tags = await _git.Git.listTags([
54
+ ...sortArgs,
55
+ result
56
+ ], {
57
+ cwd: wks.cwd,
58
+ logger: logger
59
+ });
60
+ if (tags.length > 0) {
61
+ result = tags[tags.length - 1];
62
+ }
63
+ }
64
+ if (result !== this.format) {
65
+ logger.verbose(`Resolved ${this.format} into ${result}`);
66
+ }
67
+ if (result.includes('*')) {
68
+ logger.warn(`No revision found matching ${result}, using fallback ${this.fallback}`);
69
+ return this.fallback;
70
+ }
71
+ return result;
72
+ }
73
+ async test(workspace) {
74
+ const rev = await this._formatRevision(workspace);
75
+ return await workspace.isAffected(rev);
76
+ }
77
+ }
78
+ __decorate([
79
+ (0, _services.lazyInject)(_services.Logger)
80
+ ], AffectedFilter.prototype, "_logger", void 0);
81
+
82
+ //# sourceMappingURL=affected.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/affected.filter.js"],"sourcesContent":["import { Git } from '../git';\nimport { lazyInject, Logger } from '../services';\nimport { Workspace } from '../project';\n\nimport { PipelineFilter } from './pipeline';\n\n// Class\nexport class AffectedFilter implements PipelineFilter {\n // Properties\n @lazyInject(Logger)\n private readonly _logger: Logger;\n\n // Constructor\n constructor(\n readonly format: string,\n readonly fallback: string,\n readonly sort?: string,\n ) {}\n\n // Methods\n private async _formatRevision(wks: Workspace): Promise<string> {\n const logger = this._logger.child({ label: wks.name });\n\n // Format revision\n let result = this.format;\n result = result.replace(/(?<!\\\\)((?:\\\\\\\\)*)%name/g, `$1${wks.name}`);\n result = result.replace(/\\\\(.)/g, '$1');\n\n // Ask git to complete it\n const sortArgs = this.sort ? ['--sort', this.sort] : [];\n\n // - search in branches\n if (result.includes('*')) {\n const branches = await Git.listBranches([...sortArgs, result], { cwd: wks.cwd, logger: logger });\n\n if (branches.length > 0) {\n result = branches[branches.length - 1];\n }\n }\n\n // - search in tags\n if (result.includes('*')) {\n const tags = await Git.listTags([...sortArgs, result], { cwd: wks.cwd, logger: logger });\n\n if (tags.length > 0) {\n result = tags[tags.length - 1];\n }\n }\n\n if (result !== this.format) {\n logger.verbose(`Resolved ${this.format} into ${result}`);\n }\n\n if (result.includes('*')) {\n logger.warn(`No revision found matching ${result}, using fallback ${this.fallback}`);\n\n return this.fallback;\n }\n\n return result;\n }\n\n async test(workspace: Workspace): Promise<boolean> {\n const rev = await this._formatRevision(workspace);\n return await workspace.isAffected(rev);\n }\n}\n"],"names":["AffectedFilter","constructor","format","fallback","sort","_formatRevision","wks","logger","_logger","child","label","name","result","replace","sortArgs","includes","branches","Git","listBranches","cwd","length","tags","listTags","verbose","warn","test","workspace","rev","isAffected","lazyInject","Logger"],"mappings":"AAAA;;;;+BAOaA;;aAAAA;;qBAPO;0BACe;;;;;;;AAM5B,MAAMA;IAKX,cAAc;IACdC,YACWC,QACAC,UACAC,KACT;sBAHSF;wBACAC;oBACAC;IACR;IAEH,UAAU;IACV,MAAcC,gBAAgBC,GAAc,EAAmB;QAC7D,MAAMC,SAAS,IAAI,CAACC,OAAO,CAACC,KAAK,CAAC;YAAEC,OAAOJ,IAAIK,IAAI;QAAC;QAEpD,kBAAkB;QAClB,IAAIC,SAAS,IAAI,CAACV,MAAM;QACxBU,SAASA,OAAOC,OAAO,CAAC,4BAA4B,CAAC,EAAE,EAAEP,IAAIK,IAAI,CAAC,CAAC;QACnEC,SAASA,OAAOC,OAAO,CAAC,UAAU;QAElC,yBAAyB;QACzB,MAAMC,WAAW,IAAI,CAACV,IAAI,GAAG;YAAC;YAAU,IAAI,CAACA,IAAI;SAAC,GAAG,EAAE;QAEvD,uBAAuB;QACvB,IAAIQ,OAAOG,QAAQ,CAAC,MAAM;YACxB,MAAMC,WAAW,MAAMC,QAAG,CAACC,YAAY,CAAC;mBAAIJ;gBAAUF;aAAO,EAAE;gBAAEO,KAAKb,IAAIa,GAAG;gBAAEZ,QAAQA;YAAO;YAE9F,IAAIS,SAASI,MAAM,GAAG,GAAG;gBACvBR,SAASI,QAAQ,CAACA,SAASI,MAAM,GAAG,EAAE;YACxC,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAIR,OAAOG,QAAQ,CAAC,MAAM;YACxB,MAAMM,OAAO,MAAMJ,QAAG,CAACK,QAAQ,CAAC;mBAAIR;gBAAUF;aAAO,EAAE;gBAAEO,KAAKb,IAAIa,GAAG;gBAAEZ,QAAQA;YAAO;YAEtF,IAAIc,KAAKD,MAAM,GAAG,GAAG;gBACnBR,SAASS,IAAI,CAACA,KAAKD,MAAM,GAAG,EAAE;YAChC,CAAC;QACH,CAAC;QAED,IAAIR,WAAW,IAAI,CAACV,MAAM,EAAE;YAC1BK,OAAOgB,OAAO,CAAC,CAAC,SAAS,EAAE,IAAI,CAACrB,MAAM,CAAC,MAAM,EAAEU,OAAO,CAAC;QACzD,CAAC;QAED,IAAIA,OAAOG,QAAQ,CAAC,MAAM;YACxBR,OAAOiB,IAAI,CAAC,CAAC,2BAA2B,EAAEZ,OAAO,iBAAiB,EAAE,IAAI,CAACT,QAAQ,CAAC,CAAC;YAEnF,OAAO,IAAI,CAACA,QAAQ;QACtB,CAAC;QAED,OAAOS;IACT;IAEA,MAAMa,KAAKC,SAAoB,EAAoB;QACjD,MAAMC,MAAM,MAAM,IAAI,CAACtB,eAAe,CAACqB;QACvC,OAAO,MAAMA,UAAUE,UAAU,CAACD;IACpC;AACF;;IAzDGE,IAAAA,oBAAU,EAACC,gBAAM;GAFP9B","file":"affected.filter.js"}
@@ -0,0 +1,4 @@
1
+ export * from './affected.filter';
2
+ export * from './pipeline';
3
+ export * from './private.filter';
4
+ export * from './scripts.filter';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC","file":"index.d.ts","sourcesContent":["export * from './affected.filter';\nexport * from './pipeline';\nexport * from './private.filter';\nexport * from './scripts.filter';\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _exportStar(require("./affected.filter"), exports);
6
+ _exportStar(require("./pipeline"), exports);
7
+ _exportStar(require("./private.filter"), exports);
8
+ _exportStar(require("./scripts.filter"), exports);
9
+ function _exportStar(from, to) {
10
+ Object.keys(from).forEach(function(k) {
11
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
12
+ enumerable: true,
13
+ get: function() {
14
+ return from[k];
15
+ }
16
+ });
17
+ });
18
+ return from;
19
+ }
20
+
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/index.js"],"sourcesContent":["export * from './affected.filter';\nexport * from './pipeline';\nexport * from './private.filter';\nexport * from './scripts.filter';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA;oBACA","file":"index.js"}
@@ -0,0 +1,11 @@
1
+ import { Workspace } from '../project';
2
+ import { Awaitable } from '../types';
3
+ export interface PipelineFilter {
4
+ test(workspace: Workspace): Awaitable<boolean>;
5
+ }
6
+ export declare class Pipeline {
7
+ private _filters;
8
+ add(filter: PipelineFilter): void;
9
+ private _test;
10
+ filter(workspaces: Iterable<Workspace> | AsyncIterable<Workspace>): AsyncGenerator<Workspace>;
11
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,WAAW,cAAc;IAE7B,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;CAChD;AAGD,qBAAa,QAAQ;IAEnB,OAAO,CAAC,QAAQ,CAAwB;IAGxC,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;YAInB,KAAK;IAYZ,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC;CAOrG","file":"pipeline.d.ts","sourcesContent":["import { Workspace } from '../project';\nimport { Awaitable } from '../types';\n\n// Interface\nexport interface PipelineFilter {\n // Methods\n test(workspace: Workspace): Awaitable<boolean>;\n}\n\n// Class\nexport class Pipeline {\n // Attributes\n private _filters: PipelineFilter[] = [];\n\n // Methods\n add(filter: PipelineFilter): void {\n this._filters.push(filter);\n }\n\n private async _test(workspace: Workspace): Promise<boolean> {\n for (const filter of this._filters) {\n const res = await filter.test(workspace);\n\n if (!res) {\n return false;\n }\n }\n\n return true;\n }\n\n async *filter(workspaces: Iterable<Workspace> | AsyncIterable<Workspace>): AsyncGenerator<Workspace> {\n for await (const wks of workspaces) {\n if (await this._test(wks)) {\n yield wks;\n }\n }\n }\n}\n"]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Pipeline", {
6
+ enumerable: true,
7
+ get: ()=>Pipeline
8
+ });
9
+ class Pipeline {
10
+ // Attributes
11
+ _filters = [];
12
+ // Methods
13
+ add(filter) {
14
+ this._filters.push(filter);
15
+ }
16
+ async _test(workspace) {
17
+ for (const filter of this._filters){
18
+ const res = await filter.test(workspace);
19
+ if (!res) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ async *filter(workspaces) {
26
+ for await (const wks of workspaces){
27
+ if (await this._test(wks)) {
28
+ yield wks;
29
+ }
30
+ }
31
+ }
32
+ }
33
+
34
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/pipeline.js"],"sourcesContent":["import { Workspace } from '../project';\nimport { Awaitable } from '../types';\n\n// Interface\nexport interface PipelineFilter {\n // Methods\n test(workspace: Workspace): Awaitable<boolean>;\n}\n\n// Class\nexport class Pipeline {\n // Attributes\n private _filters: PipelineFilter[] = [];\n\n // Methods\n add(filter: PipelineFilter): void {\n this._filters.push(filter);\n }\n\n private async _test(workspace: Workspace): Promise<boolean> {\n for (const filter of this._filters) {\n const res = await filter.test(workspace);\n\n if (!res) {\n return false;\n }\n }\n\n return true;\n }\n\n async *filter(workspaces: Iterable<Workspace> | AsyncIterable<Workspace>): AsyncGenerator<Workspace> {\n for await (const wks of workspaces) {\n if (await this._test(wks)) {\n yield wks;\n }\n }\n }\n}\n"],"names":["Pipeline","_filters","add","filter","push","_test","workspace","res","test","workspaces","wks"],"mappings":"AAAA;;;;+BAUaA;;aAAAA;;AAAN,MAAMA;IACX,aAAa;IACLC,WAA6B,EAAE,CAAC;IAExC,UAAU;IACVC,IAAIC,MAAsB,EAAQ;QAChC,IAAI,CAACF,QAAQ,CAACG,IAAI,CAACD;IACrB;IAEA,MAAcE,MAAMC,SAAoB,EAAoB;QAC1D,KAAK,MAAMH,UAAU,IAAI,CAACF,QAAQ,CAAE;YAClC,MAAMM,MAAM,MAAMJ,OAAOK,IAAI,CAACF;YAE9B,IAAI,CAACC,KAAK;gBACR,OAAO,KAAK;YACd,CAAC;QACH;QAEA,OAAO,IAAI;IACb;IAEA,OAAOJ,OAAOM,UAA0D,EAA6B;QACnG,WAAW,MAAMC,OAAOD,WAAY;YAClC,IAAI,MAAM,IAAI,CAACJ,KAAK,CAACK,MAAM;gBACzB,MAAMA;YACR,CAAC;QACH;IACF;AACF","file":"pipeline.js"}
@@ -0,0 +1,7 @@
1
+ import { Workspace } from '../project';
2
+ import { PipelineFilter } from './pipeline';
3
+ export declare class PrivateFilter implements PipelineFilter {
4
+ readonly value: boolean;
5
+ constructor(value: boolean);
6
+ test(workspace: Workspace): boolean;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/private.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,aAAc,YAAW,cAAc;IAEtC,QAAQ,CAAC,KAAK,EAAE,OAAO;gBAAd,KAAK,EAAE,OAAO;IAGnC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAGpC","file":"private.filter.d.ts","sourcesContent":["import { Workspace } from '../project';\n\nimport { PipelineFilter } from './pipeline';\n\n// Filter\nexport class PrivateFilter implements PipelineFilter {\n // Constructor\n constructor(readonly value: boolean) {}\n\n // Methods\n test(workspace: Workspace): boolean {\n return (workspace.manifest.private ?? false) === this.value;\n }\n}\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PrivateFilter", {
6
+ enumerable: true,
7
+ get: ()=>PrivateFilter
8
+ });
9
+ class PrivateFilter {
10
+ // Constructor
11
+ constructor(value){
12
+ this.value = value;
13
+ }
14
+ // Methods
15
+ test(workspace) {
16
+ return (workspace.manifest.private ?? false) === this.value;
17
+ }
18
+ }
19
+
20
+ //# sourceMappingURL=private.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/private.filter.js"],"sourcesContent":["import { Workspace } from '../project';\n\nimport { PipelineFilter } from './pipeline';\n\n// Filter\nexport class PrivateFilter implements PipelineFilter {\n // Constructor\n constructor(readonly value: boolean) {}\n\n // Methods\n test(workspace: Workspace): boolean {\n return (workspace.manifest.private ?? false) === this.value;\n }\n}\n"],"names":["PrivateFilter","constructor","value","test","workspace","manifest","private"],"mappings":"AAAA;;;;+BAKaA;;aAAAA;;AAAN,MAAMA;IACX,cAAc;IACdC,YAAqBC,MAAgB;qBAAhBA;IAAiB;IAEtC,UAAU;IACVC,KAAKC,SAAoB,EAAW;QAClC,OAAO,AAACA,CAAAA,UAAUC,QAAQ,CAACC,OAAO,IAAI,KAAK,AAAD,MAAO,IAAI,CAACJ,KAAK;IAC7D;AACF","file":"private.filter.js"}
@@ -0,0 +1,7 @@
1
+ import { Workspace } from '../project';
2
+ import { PipelineFilter } from './pipeline';
3
+ export declare class ScriptsFilter implements PipelineFilter {
4
+ readonly scripts: string[];
5
+ constructor(scripts: string[]);
6
+ test(workspace: Workspace): boolean;
7
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/scripts.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,qBAAa,aAAc,YAAW,cAAc;IAEtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE;gBAAjB,OAAO,EAAE,MAAM,EAAE;IAGtC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAIpC","file":"scripts.filter.d.ts","sourcesContent":["import { Workspace } from '../project';\n\nimport { PipelineFilter } from './pipeline';\n\n// Filter\nexport class ScriptsFilter implements PipelineFilter {\n // Constructor\n constructor(readonly scripts: string[]) {}\n\n // Methods\n test(workspace: Workspace): boolean {\n const scripts = Object.keys(workspace.manifest.scripts || {});\n return this.scripts.some((scr) => scripts.includes(scr));\n }\n}\n"]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ScriptsFilter", {
6
+ enumerable: true,
7
+ get: ()=>ScriptsFilter
8
+ });
9
+ class ScriptsFilter {
10
+ // Constructor
11
+ constructor(scripts){
12
+ this.scripts = scripts;
13
+ }
14
+ // Methods
15
+ test(workspace) {
16
+ const scripts = Object.keys(workspace.manifest.scripts || {});
17
+ return this.scripts.some((scr)=>scripts.includes(scr));
18
+ }
19
+ }
20
+
21
+ //# sourceMappingURL=scripts.filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["filters/scripts.filter.js"],"sourcesContent":["import { Workspace } from '../project';\n\nimport { PipelineFilter } from './pipeline';\n\n// Filter\nexport class ScriptsFilter implements PipelineFilter {\n // Constructor\n constructor(readonly scripts: string[]) {}\n\n // Methods\n test(workspace: Workspace): boolean {\n const scripts = Object.keys(workspace.manifest.scripts || {});\n return this.scripts.some((scr) => scripts.includes(scr));\n }\n}\n"],"names":["ScriptsFilter","constructor","scripts","test","workspace","Object","keys","manifest","some","scr","includes"],"mappings":"AAAA;;;;+BAKaA;;aAAAA;;AAAN,MAAMA;IACX,cAAc;IACdC,YAAqBC,QAAmB;uBAAnBA;IAAoB;IAEzC,UAAU;IACVC,KAAKC,SAAoB,EAAW;QAClC,MAAMF,UAAUG,OAAOC,IAAI,CAACF,UAAUG,QAAQ,CAACL,OAAO,IAAI,CAAC;QAC3D,OAAO,IAAI,CAACA,OAAO,CAACM,IAAI,CAAC,CAACC,MAAQP,QAAQQ,QAAQ,CAACD;IACrD;AACF","file":"scripts.filter.js"}
package/dist/git.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { SpawnTask, SpawnTaskOptions, TaskContext, TaskManager } from '@jujulego/tasks';
2
+ import { Logger } from './services';
3
+ export interface GitContext extends TaskContext {
4
+ command: string;
5
+ }
6
+ export declare class Git {
7
+ static readonly manager: TaskManager<GitContext>;
8
+ static readonly logger: Logger;
9
+ static command(cmd: string, args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext>;
10
+ static branch(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext>;
11
+ static diff(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext>;
12
+ static tag(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext>;
13
+ static isAffected(reference: string, args?: string[], opts?: SpawnTaskOptions): Promise<boolean>;
14
+ static listBranches(args?: string[], opts?: SpawnTaskOptions): Promise<string[]>;
15
+ static listTags(args?: string[], opts?: SpawnTaskOptions): Promise<string[]>;
16
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExF,OAAO,EAAc,MAAM,EAAE,MAAM,YAAY,CAAC;AAIhD,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,GAAG;IAGd,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAGjD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAG/B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAAC,UAAU,CAAC;IAalG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC;IAIhF,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC;IAI9E,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC;IAK7E,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;WAevF,YAAY,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAW7E,QAAQ,CAAC,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAUvF","file":"git.d.ts","sourcesContent":["import { SpawnTask, SpawnTaskOptions, TaskContext, TaskManager } from '@jujulego/tasks';\n\nimport { lazyInject, Logger } from './services';\nimport { streamLines } from './utils';\n\n// Types\nexport interface GitContext extends TaskContext {\n command: string;\n}\n\n// Git commands\nexport class Git {\n // Services\n @lazyInject(TaskManager)\n static readonly manager: TaskManager<GitContext>;\n\n @lazyInject(Logger)\n static readonly logger: Logger;\n\n // commons\n static command(cmd: string, args: string[], options: SpawnTaskOptions = {}): SpawnTask<GitContext> {\n const opts = { logger: this.logger, ...options };\n\n // Create task\n const task = new SpawnTask('git', [cmd, ...args], { command: cmd }, opts);\n task.subscribe('stream', ({ data }) => opts.logger.debug(data.toString('utf-8')));\n\n this.manager.add(task);\n\n return task;\n }\n\n // commands\n static branch(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('branch', args, options);\n }\n\n static diff(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('diff', args, options);\n }\n\n static tag(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('tag', args, options);\n }\n\n // high level\n static isAffected(reference: string, args: string[] = [], opts?: SpawnTaskOptions): Promise<boolean> {\n return new Promise((resolve, reject) => {\n const task = this.diff(['--quiet', reference, ...args], opts);\n\n task.subscribe('status.done', () => resolve(true));\n task.subscribe('status.failed', () => {\n if (task.exitCode) {\n resolve(false);\n } else {\n reject(new Error(`Task ${task.name} failed`));\n }\n });\n });\n }\n\n static async listBranches(args: string[] = [], opts?: SpawnTaskOptions): Promise<string[]> {\n const task = this.branch(['-l', ...args], opts);\n const result: string[] = [];\n\n for await (const line of streamLines(task, 'stdout')) {\n result.push(line.replace(/^[ *] /, ''));\n }\n\n return result;\n }\n\n static async listTags(args: string[] = [], opts?: SpawnTaskOptions): Promise<string[]> {\n const task = this.tag(['-l', ...args], opts);\n const result: string[] = [];\n\n for await (const line of streamLines(task, 'stdout')) {\n result.push(line);\n }\n\n return result;\n }\n}\n"]}
package/dist/git.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "Git", {
6
+ enumerable: true,
7
+ get: ()=>Git
8
+ });
9
+ const _tasks = require("@jujulego/tasks");
10
+ const _services = require("./services");
11
+ const _utils = require("./utils");
12
+ var __decorate = (void 0) && (void 0).__decorate || function(decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ };
18
+ class Git {
19
+ // commons
20
+ static command(cmd, args, options = {}) {
21
+ const opts = {
22
+ logger: this.logger,
23
+ ...options
24
+ };
25
+ // Create task
26
+ const task = new _tasks.SpawnTask('git', [
27
+ cmd,
28
+ ...args
29
+ ], {
30
+ command: cmd
31
+ }, opts);
32
+ task.subscribe('stream', ({ data })=>opts.logger.debug(data.toString('utf-8')));
33
+ this.manager.add(task);
34
+ return task;
35
+ }
36
+ // commands
37
+ static branch(args, options) {
38
+ return this.command('branch', args, options);
39
+ }
40
+ static diff(args, options) {
41
+ return this.command('diff', args, options);
42
+ }
43
+ static tag(args, options) {
44
+ return this.command('tag', args, options);
45
+ }
46
+ // high level
47
+ static isAffected(reference, args = [], opts) {
48
+ return new Promise((resolve, reject)=>{
49
+ const task = this.diff([
50
+ '--quiet',
51
+ reference,
52
+ ...args
53
+ ], opts);
54
+ task.subscribe('status.done', ()=>resolve(true));
55
+ task.subscribe('status.failed', ()=>{
56
+ if (task.exitCode) {
57
+ resolve(false);
58
+ } else {
59
+ reject(new Error(`Task ${task.name} failed`));
60
+ }
61
+ });
62
+ });
63
+ }
64
+ static async listBranches(args = [], opts) {
65
+ const task = this.branch([
66
+ '-l',
67
+ ...args
68
+ ], opts);
69
+ const result = [];
70
+ for await (const line of (0, _utils.streamLines)(task, 'stdout')){
71
+ result.push(line.replace(/^[ *] /, ''));
72
+ }
73
+ return result;
74
+ }
75
+ static async listTags(args = [], opts) {
76
+ const task = this.tag([
77
+ '-l',
78
+ ...args
79
+ ], opts);
80
+ const result = [];
81
+ for await (const line of (0, _utils.streamLines)(task, 'stdout')){
82
+ result.push(line);
83
+ }
84
+ return result;
85
+ }
86
+ }
87
+ __decorate([
88
+ (0, _services.lazyInject)(_tasks.TaskManager)
89
+ ], Git, "manager", void 0);
90
+ __decorate([
91
+ (0, _services.lazyInject)(_services.Logger)
92
+ ], Git, "logger", void 0);
93
+
94
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["git.js"],"sourcesContent":["import { SpawnTask, SpawnTaskOptions, TaskContext, TaskManager } from '@jujulego/tasks';\n\nimport { lazyInject, Logger } from './services';\nimport { streamLines } from './utils';\n\n// Types\nexport interface GitContext extends TaskContext {\n command: string;\n}\n\n// Git commands\nexport class Git {\n // Services\n @lazyInject(TaskManager)\n static readonly manager: TaskManager<GitContext>;\n\n @lazyInject(Logger)\n static readonly logger: Logger;\n\n // commons\n static command(cmd: string, args: string[], options: SpawnTaskOptions = {}): SpawnTask<GitContext> {\n const opts = { logger: this.logger, ...options };\n\n // Create task\n const task = new SpawnTask('git', [cmd, ...args], { command: cmd }, opts);\n task.subscribe('stream', ({ data }) => opts.logger.debug(data.toString('utf-8')));\n\n this.manager.add(task);\n\n return task;\n }\n\n // commands\n static branch(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('branch', args, options);\n }\n\n static diff(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('diff', args, options);\n }\n\n static tag(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('tag', args, options);\n }\n\n // high level\n static isAffected(reference: string, args: string[] = [], opts?: SpawnTaskOptions): Promise<boolean> {\n return new Promise((resolve, reject) => {\n const task = this.diff(['--quiet', reference, ...args], opts);\n\n task.subscribe('status.done', () => resolve(true));\n task.subscribe('status.failed', () => {\n if (task.exitCode) {\n resolve(false);\n } else {\n reject(new Error(`Task ${task.name} failed`));\n }\n });\n });\n }\n\n static async listBranches(args: string[] = [], opts?: SpawnTaskOptions): Promise<string[]> {\n const task = this.branch(['-l', ...args], opts);\n const result: string[] = [];\n\n for await (const line of streamLines(task, 'stdout')) {\n result.push(line.replace(/^[ *] /, ''));\n }\n\n return result;\n }\n\n static async listTags(args: string[] = [], opts?: SpawnTaskOptions): Promise<string[]> {\n const task = this.tag(['-l', ...args], opts);\n const result: string[] = [];\n\n for await (const line of streamLines(task, 'stdout')) {\n result.push(line);\n }\n\n return result;\n }\n}\n"],"names":["Git","command","cmd","args","options","opts","logger","task","SpawnTask","subscribe","data","debug","toString","manager","add","branch","diff","tag","isAffected","reference","Promise","resolve","reject","exitCode","Error","name","listBranches","result","line","streamLines","push","replace","listTags","lazyInject","TaskManager","Logger"],"mappings":"AAAA;;;;+BAWaA;;aAAAA;;uBAXyD;0BAEnC;uBACP;;;;;;;AAQrB,MAAMA;IAQX,UAAU;IACV,OAAOC,QAAQC,GAAW,EAAEC,IAAc,EAAEC,UAA4B,CAAC,CAAC,EAAyB;QACjG,MAAMC,OAAO;YAAEC,QAAQ,IAAI,CAACA,MAAM;YAAE,GAAGF,OAAO;QAAC;QAE/C,cAAc;QACd,MAAMG,OAAO,IAAIC,gBAAS,CAAC,OAAO;YAACN;eAAQC;SAAK,EAAE;YAAEF,SAASC;QAAI,GAAGG;QACpEE,KAAKE,SAAS,CAAC,UAAU,CAAC,EAAEC,KAAI,EAAE,GAAKL,KAAKC,MAAM,CAACK,KAAK,CAACD,KAAKE,QAAQ,CAAC;QAEvE,IAAI,CAACC,OAAO,CAACC,GAAG,CAACP;QAEjB,OAAOA;IACT;IAEA,WAAW;IACX,OAAOQ,OAAOZ,IAAc,EAAEC,OAA0B,EAAyB;QAC/E,OAAO,IAAI,CAACH,OAAO,CAAC,UAAUE,MAAMC;IACtC;IAEA,OAAOY,KAAKb,IAAc,EAAEC,OAA0B,EAAyB;QAC7E,OAAO,IAAI,CAACH,OAAO,CAAC,QAAQE,MAAMC;IACpC;IAEA,OAAOa,IAAId,IAAc,EAAEC,OAA0B,EAAyB;QAC5E,OAAO,IAAI,CAACH,OAAO,CAAC,OAAOE,MAAMC;IACnC;IAEA,aAAa;IACb,OAAOc,WAAWC,SAAiB,EAAEhB,OAAiB,EAAE,EAAEE,IAAuB,EAAoB;QACnG,OAAO,IAAIe,QAAQ,CAACC,SAASC,SAAW;YACtC,MAAMf,OAAO,IAAI,CAACS,IAAI,CAAC;gBAAC;gBAAWG;mBAAchB;aAAK,EAAEE;YAExDE,KAAKE,SAAS,CAAC,eAAe,IAAMY,QAAQ,IAAI;YAChDd,KAAKE,SAAS,CAAC,iBAAiB,IAAM;gBACpC,IAAIF,KAAKgB,QAAQ,EAAE;oBACjBF,QAAQ,KAAK;gBACf,OAAO;oBACLC,OAAO,IAAIE,MAAM,CAAC,KAAK,EAAEjB,KAAKkB,IAAI,CAAC,OAAO,CAAC;gBAC7C,CAAC;YACH;QACF;IACF;IAEA,aAAaC,aAAavB,OAAiB,EAAE,EAAEE,IAAuB,EAAqB;QACzF,MAAME,OAAO,IAAI,CAACQ,MAAM,CAAC;YAAC;eAASZ;SAAK,EAAEE;QAC1C,MAAMsB,SAAmB,EAAE;QAE3B,WAAW,MAAMC,QAAQC,IAAAA,kBAAW,EAACtB,MAAM,UAAW;YACpDoB,OAAOG,IAAI,CAACF,KAAKG,OAAO,CAAC,UAAU;QACrC;QAEA,OAAOJ;IACT;IAEA,aAAaK,SAAS7B,OAAiB,EAAE,EAAEE,IAAuB,EAAqB;QACrF,MAAME,OAAO,IAAI,CAACU,GAAG,CAAC;YAAC;eAASd;SAAK,EAAEE;QACvC,MAAMsB,SAAmB,EAAE;QAE3B,WAAW,MAAMC,QAAQC,IAAAA,kBAAW,EAACtB,MAAM,UAAW;YACpDoB,OAAOG,IAAI,CAACF;QACd;QAEA,OAAOD;IACT;AACF;;IArEGM,IAAAA,oBAAU,EAACC,kBAAW;GAFZlC;;IAKViC,IAAAA,oBAAU,EAACE,gBAAM;GALPnC","file":"git.js"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- export { EachCommand } from './commands/each.command';
2
- export { TreeCommand } from './commands/tree.command';
3
- export { ListCommand } from './commands/list.command';
4
- export { RunCommand } from './commands/run.command';
1
+ export * from './filters';
2
+ export * from './git';
3
+ export * from './middlewares';
4
+ export * from './project';
5
+ export * from './services';
6
+ export * from './ui';
7
+ export * from './utils';
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC","file":"index.d.ts","sourcesContent":["export { EachCommand } from './commands/each.command';\nexport { TreeCommand } from './commands/tree.command';\nexport { ListCommand } from './commands/list.command';\nexport { RunCommand } from './commands/run.command';\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,MAAM,CAAC;AACrB,cAAc,SAAS,CAAC","file":"index.d.ts","sourcesContent":["export * from './filters';\nexport * from './git';\nexport * from './middlewares';\nexport * from './project';\nexport * from './services';\nexport * from './ui';\nexport * from './utils';\n"]}
package/dist/index.js CHANGED
@@ -1,38 +1,24 @@
1
1
  "use strict";
2
-
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "EachCommand", {
7
- enumerable: true,
8
- get: function () {
9
- return _each.EachCommand;
10
- }
11
- });
12
- Object.defineProperty(exports, "ListCommand", {
13
- enumerable: true,
14
- get: function () {
15
- return _list.ListCommand;
16
- }
17
- });
18
- Object.defineProperty(exports, "RunCommand", {
19
- enumerable: true,
20
- get: function () {
21
- return _run.RunCommand;
22
- }
3
+ value: true
23
4
  });
24
- Object.defineProperty(exports, "TreeCommand", {
25
- enumerable: true,
26
- get: function () {
27
- return _tree.TreeCommand;
28
- }
29
- });
30
-
31
- var _each = require("./commands/each.command");
32
-
33
- var _tree = require("./commands/tree.command");
34
-
35
- var _list = require("./commands/list.command");
5
+ _exportStar(require("./filters"), exports);
6
+ _exportStar(require("./git"), exports);
7
+ _exportStar(require("./middlewares"), exports);
8
+ _exportStar(require("./project"), exports);
9
+ _exportStar(require("./services"), exports);
10
+ _exportStar(require("./ui"), exports);
11
+ _exportStar(require("./utils"), exports);
12
+ function _exportStar(from, to) {
13
+ Object.keys(from).forEach(function(k) {
14
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
15
+ enumerable: true,
16
+ get: function() {
17
+ return from[k];
18
+ }
19
+ });
20
+ });
21
+ return from;
22
+ }
36
23
 
37
- var _run = require("./commands/run.command");
38
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","file":"index.js","sourcesContent":["export { EachCommand } from './commands/each.command';\nexport { TreeCommand } from './commands/tree.command';\nexport { ListCommand } from './commands/list.command';\nexport { RunCommand } from './commands/run.command';\n"]}
1
+ {"version":3,"sources":["index.js"],"sourcesContent":["export * from './filters';\nexport * from './git';\nexport * from './middlewares';\nexport * from './project';\nexport * from './services';\nexport * from './ui';\nexport * from './utils';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA","file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["main.tsx"],"names":[],"mappings":"","file":"main.d.ts","sourcesContent":["import { render } from 'ink';\nimport { StrictMode } from 'react';\n\nimport { Application } from './application';\nimport { EachCommand } from './commands/each.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { TreeCommand } from './commands/tree.command';\nimport { StaticLogs } from './components/StaticLogs';\n\n// Bootstrap\n(async () => {\n const { waitUntilExit } = render(\n <StrictMode>\n <StaticLogs />\n <Application name=\"jill\" commands={[\n EachCommand,\n ListCommand,\n RunCommand,\n TreeCommand\n ]} />\n </StrictMode>\n );\n\n await waitUntilExit();\n})();\n"]}
1
+ {"version":3,"sources":["main.ts"],"names":[],"mappings":"","file":"main.d.ts","sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport pkg from '../package.json';\nimport { globalConfig } from './middlewares';\nimport { applyMiddlewares } from './utils';\n\n// Bootstrap\n(async () => {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(yargs.terminalWidth());\n\n // Middlewares\n applyMiddlewares(parser, [globalConfig]);\n\n // Parse !\n await parser\n .commandDir('commands', {\n visit: obj => obj.default\n })\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n})();\n"]}
package/dist/main.js CHANGED
@@ -1,65 +1,29 @@
1
1
  "use strict";
2
-
3
- var _jsxRuntime = require("react/jsx-runtime");
4
-
5
- var _ink = require("ink");
6
-
7
- var _react = require("react");
8
-
9
- var _application = require("./application");
10
-
11
- var _each = require("./commands/each.command");
12
-
13
- var _list = require("./commands/list.command");
14
-
15
- var _run = require("./commands/run.command");
16
-
17
- var _tree = require("./commands/tree.command");
18
-
19
- var _StaticLogs = require("./components/StaticLogs");
20
-
21
- var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) {
23
- return value instanceof P ? value : new P(function (resolve) {
24
- resolve(value);
25
- });
26
- }
27
-
28
- return new (P || (P = Promise))(function (resolve, reject) {
29
- function fulfilled(value) {
30
- try {
31
- step(generator.next(value));
32
- } catch (e) {
33
- reject(e);
34
- }
35
- }
36
-
37
- function rejected(value) {
38
- try {
39
- step(generator["throw"](value));
40
- } catch (e) {
41
- reject(e);
42
- }
43
- }
44
-
45
- function step(result) {
46
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
47
- }
48
-
49
- step((generator = generator.apply(thisArg, _arguments || [])).next());
50
- });
51
- };
52
-
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _yargs = /*#__PURE__*/ _interopRequireDefault(require("yargs"));
6
+ const _helpers = require("yargs/helpers");
7
+ const _packageJson = /*#__PURE__*/ _interopRequireDefault(require("../package.json"));
8
+ const _middlewares = require("./middlewares");
9
+ const _utils = require("./utils");
10
+ function _interopRequireDefault(obj) {
11
+ return obj && obj.__esModule ? obj : {
12
+ default: obj
13
+ };
14
+ }
53
15
  // Bootstrap
54
- (() => __awaiter(void 0, void 0, void 0, function* () {
55
- const {
56
- waitUntilExit
57
- } = (0, _ink.render)((0, _jsxRuntime.jsxs)(_react.StrictMode, {
58
- children: [(0, _jsxRuntime.jsx)(_StaticLogs.StaticLogs, {}), (0, _jsxRuntime.jsx)(_application.Application, {
59
- name: "jill",
60
- commands: [_each.EachCommand, _list.ListCommand, _run.RunCommand, _tree.TreeCommand]
61
- })]
62
- }));
63
- yield waitUntilExit();
64
- }))();
16
+ (async ()=>{
17
+ // Setup yargs
18
+ const parser = (0, _yargs.default)((0, _helpers.hideBin)(process.argv)).scriptName('jill').completion('completion', 'Generate bash completion script').help('help', 'Show help for a command').version('version', 'Show version', _packageJson.default.version).wrap(_yargs.default.terminalWidth());
19
+ // Middlewares
20
+ (0, _utils.applyMiddlewares)(parser, [
21
+ _middlewares.globalConfig
22
+ ]);
23
+ // Parse !
24
+ await parser.commandDir('commands', {
25
+ visit: (obj)=>obj.default
26
+ }).demandCommand().recommendCommands().strict().parse();
27
+ })();
28
+
65
29
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["main.js","main.tsx"],"names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","waitUntilExit","StrictMode","children","StaticLogs","Application","name","commands","EachCommand","ListCommand","RunCommand","TreeCommand"],"mappings":";;AASA;;ACTA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;ADRA,IAAIA,SAAS,GAAI,UAAQ,SAAKA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,WAASC,KAAT,CAAeC,KAAf,EAAsB;AAAE,WAAOA,KAAK,YAAYH,CAAjB,GAAqBG,KAArB,GAA6B,IAAIH,CAAJ,CAAM,UAAUI,OAAV,EAAmB;AAAEA,MAAAA,OAAO,CAACD,KAAD,CAAP;AAAiB,KAA5C,CAApC;AAAoF;;AAC5G,SAAO,KAAKH,CAAC,KAAKA,CAAC,GAAGK,OAAT,CAAN,EAAyB,UAAUD,OAAV,EAAmBE,MAAnB,EAA2B;AACvD,aAASC,SAAT,CAAmBJ,KAAnB,EAA0B;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAACQ,IAAV,CAAeN,KAAf,CAAD,CAAJ;AAA8B,OAApC,CAAqC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC3F,aAASC,QAAT,CAAkBR,KAAlB,EAAyB;AAAE,UAAI;AAAEK,QAAAA,IAAI,CAACP,SAAS,CAAC,OAAD,CAAT,CAAmBE,KAAnB,CAAD,CAAJ;AAAkC,OAAxC,CAAyC,OAAOO,CAAP,EAAU;AAAEJ,QAAAA,MAAM,CAACI,CAAD,CAAN;AAAY;AAAE;;AAC9F,aAASF,IAAT,CAAcI,MAAd,EAAsB;AAAEA,MAAAA,MAAM,CAACC,IAAP,GAAcT,OAAO,CAACQ,MAAM,CAACT,KAAR,CAArB,GAAsCD,KAAK,CAACU,MAAM,CAACT,KAAR,CAAL,CAAoBW,IAApB,CAAyBP,SAAzB,EAAoCI,QAApC,CAAtC;AAAsF;;AAC9GH,IAAAA,IAAI,CAAC,CAACP,SAAS,GAAGA,SAAS,CAACc,KAAV,CAAgBjB,OAAhB,EAAyBC,UAAU,IAAI,EAAvC,CAAb,EAAyDU,IAAzD,EAAD,CAAJ;AACH,GALM,CAAP;AAMH,CARD;;ACUA;AACA,CAAC,MAAWZ,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACV,QAAM;AAAEmB,IAAAA;AAAF,MAAoB,iBACxB,sBAACC,iBAAD,EAAW;AAAAC,IAAAA,QAAA,EAAA,CACT,qBAACC,sBAAD,EAAW,EAAX,CADS,EAET,qBAACC,wBAAD,EAAY;AAACC,MAAAA,IAAI,EAAC,MAAN;AAAaC,MAAAA,QAAQ,EAAE,CACjCC,iBADiC,EAEjCC,iBAFiC,EAGjCC,eAHiC,EAIjCC,iBAJiC;AAAvB,KAAZ,CAFS;AAAA,GAAX,CADwB,CAA1B;AAYA,QAAMV,aAAa,EAAnB;AACD,CAdW,CAAZ","file":"main.js","sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { render } from 'ink';\nimport { StrictMode } from 'react';\nimport { Application } from './application';\nimport { EachCommand } from './commands/each.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { TreeCommand } from './commands/tree.command';\nimport { StaticLogs } from './components/StaticLogs';\n// Bootstrap\n(() => __awaiter(void 0, void 0, void 0, function* () {\n const { waitUntilExit } = render(_jsxs(StrictMode, { children: [_jsx(StaticLogs, {}), _jsx(Application, { name: \"jill\", commands: [\n EachCommand,\n ListCommand,\n RunCommand,\n TreeCommand\n ] })] }));\n yield waitUntilExit();\n}))();","import { render } from 'ink';\nimport { StrictMode } from 'react';\n\nimport { Application } from './application';\nimport { EachCommand } from './commands/each.command';\nimport { ListCommand } from './commands/list.command';\nimport { RunCommand } from './commands/run.command';\nimport { TreeCommand } from './commands/tree.command';\nimport { StaticLogs } from './components/StaticLogs';\n\n// Bootstrap\n(async () => {\n const { waitUntilExit } = render(\n <StrictMode>\n <StaticLogs />\n <Application name=\"jill\" commands={[\n EachCommand,\n ListCommand,\n RunCommand,\n TreeCommand\n ]} />\n </StrictMode>\n );\n\n await waitUntilExit();\n})();\n"]}
1
+ {"version":3,"sources":["main.js"],"sourcesContent":["import yargs from 'yargs';\nimport { hideBin } from 'yargs/helpers';\n\nimport pkg from '../package.json';\nimport { globalConfig } from './middlewares';\nimport { applyMiddlewares } from './utils';\n\n// Bootstrap\n(async () => {\n // Setup yargs\n const parser = yargs(hideBin(process.argv))\n .scriptName('jill')\n .completion('completion', 'Generate bash completion script')\n .help('help', 'Show help for a command')\n .version('version', 'Show version', pkg.version)\n .wrap(yargs.terminalWidth());\n\n // Middlewares\n applyMiddlewares(parser, [globalConfig]);\n\n // Parse !\n await parser\n .commandDir('commands', {\n visit: obj => obj.default\n })\n .demandCommand()\n .recommendCommands()\n .strict()\n .parse();\n})();\n"],"names":["parser","yargs","hideBin","process","argv","scriptName","completion","help","version","pkg","wrap","terminalWidth","applyMiddlewares","globalConfig","commandDir","visit","obj","default","demandCommand","recommendCommands","strict","parse"],"mappings":"AAAA;;;;4DAAkB;yBACM;kEAER;6BACa;uBACI;;;;;;AAEjC,YAAY;AACX,CAAA,UAAY;IACX,cAAc;IACd,MAAMA,SAASC,IAAAA,cAAK,EAACC,IAAAA,gBAAO,EAACC,QAAQC,IAAI,GACtCC,UAAU,CAAC,QACXC,UAAU,CAAC,cAAc,mCACzBC,IAAI,CAAC,QAAQ,2BACbC,OAAO,CAAC,WAAW,gBAAgBC,oBAAG,CAACD,OAAO,EAC9CE,IAAI,CAACT,cAAK,CAACU,aAAa;IAE3B,cAAc;IACdC,IAAAA,uBAAgB,EAACZ,QAAQ;QAACa,yBAAY;KAAC;IAEvC,UAAU;IACV,MAAMb,OACHc,UAAU,CAAC,YAAY;QACtBC,OAAOC,CAAAA,MAAOA,IAAIC,OAAO;IAC3B,GACCC,aAAa,GACbC,iBAAiB,GACjBC,MAAM,GACNC,KAAK;AACV,CAAA","file":"main.js"}
@@ -0,0 +1,5 @@
1
+ export declare const globalConfig: import("../utils").Middleware<unknown, {
2
+ verbose: number;
3
+ } & {
4
+ jobs: number | undefined;
5
+ }>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["middlewares/global-config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY;;;;EAkBvB,CAAC","file":"global-config.d.ts","sourcesContent":["import { container, GLOBAL_CONFIG } from '../services';\nimport { defineMiddleware } from '../utils';\n\n// Middleware\nexport const globalConfig = defineMiddleware({\n builder: (yargs) => yargs\n .option('verbose', {\n alias: 'v',\n type: 'count',\n description: 'Set verbosity level',\n })\n .option('jobs', {\n alias: 'j',\n type: 'number',\n description: 'Set maximum parallel job number',\n }),\n handler(args) {\n container.bind(GLOBAL_CONFIG).toConstantValue({\n verbose: args.verbose,\n jobs: args.jobs,\n });\n }\n});\n"]}