@jujulego/jill 2.4.0-alpha.4 → 2.4.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -12
- package/dist/commands/each.d.ts +9 -6
- package/dist/commands/group.d.ts +2 -2
- package/dist/commands/run.d.ts +6 -4
- package/dist/{core.plugin-CZ8_7QfH.js → core.plugin-fx8ZOGe-.js} +106 -135
- package/dist/core.plugin-fx8ZOGe-.js.map +1 -0
- package/dist/filters/scripts.filter.d.ts +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/{ink-command-SIxVoU_e.js → ink-command-OuyNSTxT.js} +14 -57
- package/dist/{ink-command-SIxVoU_e.js.map → ink-command-OuyNSTxT.js.map} +1 -1
- package/dist/{jill.application-NaKSF97o.js → jill.application-JCJSgP36.js} +21 -34
- package/dist/{jill.application-NaKSF97o.js.map → jill.application-JCJSgP36.js.map} +1 -1
- package/dist/main.js +6 -4
- package/dist/main.js.map +1 -1
- package/dist/tasks/errors.d.ts +4 -0
- package/dist/tasks/{task-expr.service.d.ts → task-expression.service.d.ts} +3 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/{workspace-tree-9cXaezk-.js → workspace-tree-YMFiEGQk.js} +71 -110
- package/dist/workspace-tree-YMFiEGQk.js.map +1 -0
- package/package.json +10 -8
- package/dist/core.plugin-CZ8_7QfH.js.map +0 -1
- package/dist/workspace-tree-9cXaezk-.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { _ } from '@swc/helpers/_/_ts_decorate';
|
|
1
2
|
import { Logger, withLabel } from '@jujulego/logger';
|
|
2
|
-
import { S as Service, v as TASK_MANAGER, o as lazyInject, C as CONFIG, n as container, r as CommandTask, u as ScriptTask, M as Middleware, F as ContextService, m as CURRENT, p as lazyInjectNamed, E as ExitException, j as getRegistry, l as setModule } from './ink-command-
|
|
3
|
+
import { S as Service, v as TASK_MANAGER, o as lazyInject, C as CONFIG, n as container, r as CommandTask, u as ScriptTask, M as Middleware, F as ContextService, m as CURRENT, p as lazyInjectNamed, E as ExitException, j as getRegistry, l as setModule } from './ink-command-OuyNSTxT.js';
|
|
4
|
+
import { _ as _$1 } from '@swc/helpers/_/_ts_param';
|
|
3
5
|
import { inject, injectable, ContainerModule, id } from 'inversify';
|
|
4
6
|
import symbols from 'log-symbols';
|
|
5
7
|
import path from 'node:path';
|
|
@@ -50,17 +52,6 @@ async function* streamLines(task, stream) {
|
|
|
50
52
|
}
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
function _ts_decorate$7(decorators, target, key, desc) {
|
|
54
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
55
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
56
|
-
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;
|
|
57
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
58
|
-
}
|
|
59
|
-
function _ts_param$4(paramIndex, decorator) {
|
|
60
|
-
return function(target, key) {
|
|
61
|
-
decorator(target, key, paramIndex);
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
55
|
let GitService = class GitService {
|
|
65
56
|
// Constructor
|
|
66
57
|
constructor(manager, logger){
|
|
@@ -172,18 +163,12 @@ let GitService = class GitService {
|
|
|
172
163
|
return result;
|
|
173
164
|
}
|
|
174
165
|
};
|
|
175
|
-
GitService =
|
|
166
|
+
GitService = _([
|
|
176
167
|
Service(),
|
|
177
|
-
|
|
178
|
-
|
|
168
|
+
_$1(0, inject(TASK_MANAGER)),
|
|
169
|
+
_$1(1, inject(Logger))
|
|
179
170
|
], GitService);
|
|
180
171
|
|
|
181
|
-
function _ts_decorate$6(decorators, target, key, desc) {
|
|
182
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
183
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
184
|
-
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;
|
|
185
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
186
|
-
}
|
|
187
172
|
// Class
|
|
188
173
|
class AffectedFilter {
|
|
189
174
|
// Constructor
|
|
@@ -244,10 +229,10 @@ class AffectedFilter {
|
|
|
244
229
|
return await workspace.isAffected(rev);
|
|
245
230
|
}
|
|
246
231
|
}
|
|
247
|
-
|
|
232
|
+
_([
|
|
248
233
|
lazyInject(Logger)
|
|
249
234
|
], AffectedFilter.prototype, "_logger", void 0);
|
|
250
|
-
|
|
235
|
+
_([
|
|
251
236
|
lazyInject(GitService)
|
|
252
237
|
], AffectedFilter.prototype, "_git", void 0);
|
|
253
238
|
|
|
@@ -294,22 +279,21 @@ class PrivateFilter {
|
|
|
294
279
|
// Filter
|
|
295
280
|
class ScriptsFilter {
|
|
296
281
|
// Constructor
|
|
297
|
-
constructor(scripts){
|
|
282
|
+
constructor(scripts, all = false){
|
|
298
283
|
this.scripts = scripts;
|
|
284
|
+
this.all = all;
|
|
299
285
|
}
|
|
300
286
|
// Methods
|
|
301
287
|
test(workspace) {
|
|
302
288
|
const scripts = Object.keys(workspace.manifest.scripts || {});
|
|
303
|
-
|
|
289
|
+
if (this.all) {
|
|
290
|
+
return this.scripts.every((scr)=>scripts.includes(scr));
|
|
291
|
+
} else {
|
|
292
|
+
return this.scripts.some((scr)=>scripts.includes(scr));
|
|
293
|
+
}
|
|
304
294
|
}
|
|
305
295
|
}
|
|
306
296
|
|
|
307
|
-
function _ts_decorate$5(decorators, target, key, desc) {
|
|
308
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
309
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
310
|
-
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;
|
|
311
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
312
|
-
}
|
|
313
297
|
let Workspace = class Workspace {
|
|
314
298
|
// Constructor
|
|
315
299
|
constructor(_cwd, manifest, project){
|
|
@@ -463,22 +447,16 @@ let Workspace = class Workspace {
|
|
|
463
447
|
return path.resolve(this.project.root, this._cwd);
|
|
464
448
|
}
|
|
465
449
|
};
|
|
466
|
-
|
|
450
|
+
_([
|
|
467
451
|
lazyInject(GitService)
|
|
468
452
|
], Workspace.prototype, "_git", void 0);
|
|
469
|
-
|
|
453
|
+
_([
|
|
470
454
|
lazyInject(CONFIG)
|
|
471
455
|
], Workspace.prototype, "_config", void 0);
|
|
472
|
-
Workspace =
|
|
456
|
+
Workspace = _([
|
|
473
457
|
injectable()
|
|
474
458
|
], Workspace);
|
|
475
459
|
|
|
476
|
-
function _ts_decorate$4(decorators, target, key, desc) {
|
|
477
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
478
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
479
|
-
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;
|
|
480
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
481
|
-
}
|
|
482
460
|
let Project = class Project {
|
|
483
461
|
// Constructor
|
|
484
462
|
constructor(_root, _logger, opts = {}){
|
|
@@ -613,21 +591,10 @@ let Project = class Project {
|
|
|
613
591
|
return path.resolve(this._root);
|
|
614
592
|
}
|
|
615
593
|
};
|
|
616
|
-
Project =
|
|
594
|
+
Project = _([
|
|
617
595
|
injectable()
|
|
618
596
|
], Project);
|
|
619
597
|
|
|
620
|
-
function _ts_decorate$3(decorators, target, key, desc) {
|
|
621
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
622
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
623
|
-
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;
|
|
624
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
625
|
-
}
|
|
626
|
-
function _ts_param$3(paramIndex, decorator) {
|
|
627
|
-
return function(target, key) {
|
|
628
|
-
decorator(target, key, paramIndex);
|
|
629
|
-
};
|
|
630
|
-
}
|
|
631
598
|
// Constants
|
|
632
599
|
const MANIFEST = "package.json";
|
|
633
600
|
const LOCK_FILES = [
|
|
@@ -701,22 +668,11 @@ let ProjectRepository = class ProjectRepository {
|
|
|
701
668
|
return project;
|
|
702
669
|
}
|
|
703
670
|
};
|
|
704
|
-
ProjectRepository =
|
|
671
|
+
ProjectRepository = _([
|
|
705
672
|
Service(),
|
|
706
|
-
|
|
673
|
+
_$1(0, inject(Logger))
|
|
707
674
|
], ProjectRepository);
|
|
708
675
|
|
|
709
|
-
function _ts_decorate$2(decorators, target, key, desc) {
|
|
710
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
711
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
712
|
-
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;
|
|
713
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
714
|
-
}
|
|
715
|
-
function _ts_param$2(paramIndex, decorator) {
|
|
716
|
-
return function(target, key) {
|
|
717
|
-
decorator(target, key, paramIndex);
|
|
718
|
-
};
|
|
719
|
-
}
|
|
720
676
|
let LoadProject = class LoadProject {
|
|
721
677
|
// Constructor
|
|
722
678
|
constructor(projects, context){
|
|
@@ -749,10 +705,10 @@ let LoadProject = class LoadProject {
|
|
|
749
705
|
}
|
|
750
706
|
}
|
|
751
707
|
};
|
|
752
|
-
LoadProject =
|
|
708
|
+
LoadProject = _([
|
|
753
709
|
Middleware(),
|
|
754
|
-
|
|
755
|
-
|
|
710
|
+
_$1(0, inject(ProjectRepository)),
|
|
711
|
+
_$1(1, inject(ContextService))
|
|
756
712
|
], LoadProject);
|
|
757
713
|
// Lazy injection
|
|
758
714
|
function LazyCurrentProject() {
|
|
@@ -767,17 +723,6 @@ container.bind(Project).toDynamicValue(({ container })=>{
|
|
|
767
723
|
return prj;
|
|
768
724
|
}).whenTargetNamed(CURRENT);
|
|
769
725
|
|
|
770
|
-
function _ts_decorate$1(decorators, target, key, desc) {
|
|
771
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
772
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
773
|
-
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;
|
|
774
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
775
|
-
}
|
|
776
|
-
function _ts_param$1(paramIndex, decorator) {
|
|
777
|
-
return function(target, key) {
|
|
778
|
-
decorator(target, key, paramIndex);
|
|
779
|
-
};
|
|
780
|
-
}
|
|
781
726
|
let LoadWorkspace = class LoadWorkspace {
|
|
782
727
|
// Constructor
|
|
783
728
|
constructor(context, logger){
|
|
@@ -811,13 +756,13 @@ let LoadWorkspace = class LoadWorkspace {
|
|
|
811
756
|
}
|
|
812
757
|
}
|
|
813
758
|
};
|
|
814
|
-
|
|
759
|
+
_([
|
|
815
760
|
LazyCurrentProject()
|
|
816
761
|
], LoadWorkspace.prototype, "project", void 0);
|
|
817
|
-
LoadWorkspace =
|
|
762
|
+
LoadWorkspace = _([
|
|
818
763
|
Middleware(),
|
|
819
|
-
|
|
820
|
-
|
|
764
|
+
_$1(0, inject(ContextService)),
|
|
765
|
+
_$1(1, inject(Logger))
|
|
821
766
|
], LoadWorkspace);
|
|
822
767
|
// Decorators
|
|
823
768
|
function LazyCurrentWorkspace() {
|
|
@@ -855,22 +800,19 @@ function Plugin(opts) {
|
|
|
855
800
|
};
|
|
856
801
|
}
|
|
857
802
|
|
|
858
|
-
|
|
859
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
860
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
861
|
-
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;
|
|
862
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
803
|
+
class TaskExpressionError extends Error {
|
|
863
804
|
}
|
|
864
|
-
|
|
865
|
-
return function(target, key) {
|
|
866
|
-
decorator(target, key, paramIndex);
|
|
867
|
-
};
|
|
805
|
+
class TaskSyntaxError extends Error {
|
|
868
806
|
}
|
|
869
|
-
|
|
807
|
+
|
|
808
|
+
let TaskExpressionService = class TaskExpressionService1 {
|
|
870
809
|
// Statics
|
|
871
810
|
static isTaskNode(node) {
|
|
872
811
|
return "script" in node;
|
|
873
812
|
}
|
|
813
|
+
static{
|
|
814
|
+
this._sequenceOperatorWarn = true;
|
|
815
|
+
}
|
|
874
816
|
// Constructor
|
|
875
817
|
constructor(_logger){
|
|
876
818
|
this._logger = _logger;
|
|
@@ -904,6 +846,7 @@ let TaskExprService = class TaskExprService1 {
|
|
|
904
846
|
operator: {
|
|
905
847
|
match: [
|
|
906
848
|
"->",
|
|
849
|
+
"&&",
|
|
907
850
|
"//",
|
|
908
851
|
"||"
|
|
909
852
|
],
|
|
@@ -916,6 +859,7 @@ let TaskExprService = class TaskExprService1 {
|
|
|
916
859
|
operator: {
|
|
917
860
|
match: [
|
|
918
861
|
"->",
|
|
862
|
+
"&&",
|
|
919
863
|
"//",
|
|
920
864
|
"||"
|
|
921
865
|
],
|
|
@@ -951,13 +895,13 @@ let TaskExprService = class TaskExprService1 {
|
|
|
951
895
|
// Handle argument
|
|
952
896
|
if (token.type === "argument") {
|
|
953
897
|
if (!node) {
|
|
954
|
-
throw new
|
|
955
|
-
} else if (
|
|
898
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Unexpected argument"));
|
|
899
|
+
} else if (TaskExpressionService.isTaskNode(node)) {
|
|
956
900
|
node.args.push(token.value);
|
|
957
901
|
} else {
|
|
958
902
|
const lastTask = node.tasks[node.tasks.length - 1];
|
|
959
|
-
if (!lastTask || !
|
|
960
|
-
throw new
|
|
903
|
+
if (!lastTask || !TaskExpressionService.isTaskNode(lastTask)) {
|
|
904
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Unexpected argument"));
|
|
961
905
|
} else {
|
|
962
906
|
lastTask.args.push(token.value);
|
|
963
907
|
}
|
|
@@ -968,8 +912,8 @@ let TaskExprService = class TaskExprService1 {
|
|
|
968
912
|
if (token.type === "operator") {
|
|
969
913
|
const operator = token.value;
|
|
970
914
|
if (!node) {
|
|
971
|
-
throw new
|
|
972
|
-
} else if (
|
|
915
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Unexpected operator"));
|
|
916
|
+
} else if (TaskExpressionService.isTaskNode(node)) {
|
|
973
917
|
node = {
|
|
974
918
|
operator,
|
|
975
919
|
tasks: [
|
|
@@ -1005,16 +949,16 @@ let TaskExprService = class TaskExprService1 {
|
|
|
1005
949
|
} else if (token.type === "lparen") {
|
|
1006
950
|
const res = this._nextNode(lexer, i + 1);
|
|
1007
951
|
if (!res) {
|
|
1008
|
-
throw new
|
|
952
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Empty group found"));
|
|
1009
953
|
}
|
|
1010
954
|
child = res;
|
|
1011
955
|
} else {
|
|
1012
|
-
throw new
|
|
956
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Unexpected token"));
|
|
1013
957
|
}
|
|
1014
958
|
if (!node) {
|
|
1015
959
|
node = child;
|
|
1016
|
-
} else if (
|
|
1017
|
-
throw new
|
|
960
|
+
} else if (TaskExpressionService.isTaskNode(node)) {
|
|
961
|
+
throw new TaskSyntaxError(lexer.formatError(token, "Unexpected token, expected an operator"));
|
|
1018
962
|
} else {
|
|
1019
963
|
node.tasks.push(child);
|
|
1020
964
|
}
|
|
@@ -1037,11 +981,24 @@ let TaskExprService = class TaskExprService1 {
|
|
|
1037
981
|
}
|
|
1038
982
|
return tree;
|
|
1039
983
|
}
|
|
984
|
+
*extractScripts(node) {
|
|
985
|
+
if ("roots" in node) {
|
|
986
|
+
for (const child of node.roots){
|
|
987
|
+
yield* this.extractScripts(child);
|
|
988
|
+
}
|
|
989
|
+
} else if (TaskExpressionService.isTaskNode(node)) {
|
|
990
|
+
yield node.script;
|
|
991
|
+
} else {
|
|
992
|
+
for (const child of node.tasks){
|
|
993
|
+
yield* this.extractScripts(child);
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
}
|
|
1040
997
|
async buildTask(node, workspace, opts) {
|
|
1041
|
-
if (
|
|
998
|
+
if (TaskExpressionService.isTaskNode(node)) {
|
|
1042
999
|
const task = await workspace.run(node.script, node.args, opts);
|
|
1043
1000
|
if (!task) {
|
|
1044
|
-
throw new
|
|
1001
|
+
throw new TaskExpressionError(`Workspace ${workspace.name} have no ${node.script} script`);
|
|
1045
1002
|
}
|
|
1046
1003
|
return task;
|
|
1047
1004
|
} else {
|
|
@@ -1055,6 +1012,10 @@ let TaskExprService = class TaskExprService1 {
|
|
|
1055
1012
|
logger: this._logger
|
|
1056
1013
|
});
|
|
1057
1014
|
} else {
|
|
1015
|
+
if (node.operator === "->" && TaskExpressionService._sequenceOperatorWarn) {
|
|
1016
|
+
this._logger.warn("Sequence operator -> is deprecated in favor of &&. It will be removed in a next major release.");
|
|
1017
|
+
TaskExpressionService._sequenceOperatorWarn = true;
|
|
1018
|
+
}
|
|
1058
1019
|
group = new SequenceGroup("In sequence", {}, {
|
|
1059
1020
|
logger: this._logger
|
|
1060
1021
|
});
|
|
@@ -1066,10 +1027,10 @@ let TaskExprService = class TaskExprService1 {
|
|
|
1066
1027
|
}
|
|
1067
1028
|
}
|
|
1068
1029
|
};
|
|
1069
|
-
|
|
1030
|
+
TaskExpressionService = _([
|
|
1070
1031
|
Service(),
|
|
1071
|
-
|
|
1072
|
-
],
|
|
1032
|
+
_$1(0, inject(Logger))
|
|
1033
|
+
], TaskExpressionService);
|
|
1073
1034
|
|
|
1074
1035
|
// Utils
|
|
1075
1036
|
const style = (dev)=>({
|
|
@@ -1148,5 +1109,5 @@ function WorkspaceTree(props) {
|
|
|
1148
1109
|
});
|
|
1149
1110
|
}
|
|
1150
1111
|
|
|
1151
|
-
export { AffectedFilter as A, GitService as G, LoadProject as L, Pipeline as P, ScriptsFilter as S,
|
|
1152
|
-
//# sourceMappingURL=workspace-tree-
|
|
1112
|
+
export { AffectedFilter as A, GitService as G, LoadProject as L, Pipeline as P, ScriptsFilter as S, TaskExpressionService as T, WorkspaceTree as W, PrivateFilter as a, LazyCurrentProject as b, LoadWorkspace as c, LazyCurrentWorkspace as d, PluginModule as e, Plugin as f, Project as g, ProjectRepository as h, Workspace as i, combine as j, TaskExpressionError as k, TaskSyntaxError as l, streamLines as s };
|
|
1113
|
+
//# sourceMappingURL=workspace-tree-YMFiEGQk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-tree-YMFiEGQk.js","sources":["../src/utils/streams.ts","../src/commons/git.service.ts","../src/filters/affected.filter.ts","../src/filters/pipeline.ts","../src/filters/private.filter.ts","../src/filters/scripts.filter.ts","../src/project/workspace.ts","../src/project/project.ts","../src/project/project.repository.ts","../src/middlewares/load-project.ts","../src/middlewares/load-workspace.ts","../src/modules/plugin.ts","../src/tasks/errors.ts","../src/tasks/task-expression.service.ts","../src/ui/workspace-tree.tsx"],"sourcesContent":["import { iterate$, off$, once$ } from '@jujulego/event-tree';\nimport { type SpawnTask, type SpawnTaskStream } from '@jujulego/tasks';\n\n// Utils\nexport async function* combine<T>(...generators: AsyncGenerator<T>[]): AsyncGenerator<T> {\n for (const gen of generators) {\n yield* gen;\n }\n}\n\nexport async function *streamLines(task: SpawnTask, stream: SpawnTaskStream): AsyncGenerator<string> {\n // Abort\n const off = off$();\n once$(task, 'completed', off);\n\n // Stream\n let current = '';\n\n try {\n for await (const chunk of iterate$(task, `stream.${stream}`, { off })) {\n const data = current + chunk.data.toString('utf-8');\n const lines = data.split(/\\r?\\n/);\n\n current = lines.pop() ?? '';\n\n for (const line of lines) {\n yield line;\n }\n }\n } catch (err) {\n if (err.message !== 'Unsubscribed !') {\n throw err;\n }\n\n if (current) {\n yield current;\n }\n }\n}\n","import { once$ } from '@jujulego/event-tree';\nimport { Logger } from '@jujulego/logger';\nimport { SpawnTask, type SpawnTaskOptions, TaskContext, type TaskManager } from '@jujulego/tasks';\nimport { inject } from 'inversify';\n\nimport { TASK_MANAGER } from '@/src/tasks/task-manager.config.ts';\nimport { streamLines } from '@/src/utils/streams.ts';\nimport { Service } from '@/src/modules/service.ts';\nimport { TaskUIContext } from '@/src/types.ts';\n\n// Types\nexport interface GitContext extends TaskContext, TaskUIContext {\n command: string;\n}\n\n// Git commands\n@Service()\nexport class GitService {\n // Constructor\n constructor(\n @inject(TASK_MANAGER)\n private readonly manager: TaskManager,\n @inject(Logger)\n private readonly logger: Logger,\n ) {}\n\n // Methods\n /**\n * Runs a git command inside a SpawnTask\n *\n * @param cmd\n * @param args\n * @param options\n */\n 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, hidden: true }, opts);\n task.on('stream', ({ data }) => opts.logger.debug(data.toString('utf-8')));\n\n this.manager.add(task);\n\n return task;\n }\n\n /**\n * Runs git branch\n *\n * @param args\n * @param options\n */\n branch(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('branch', args, options);\n }\n\n /**\n * Runs git diff\n *\n * @param args\n * @param options\n */\n diff(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('diff', args, options);\n }\n\n /**\n * Runs git tag\n *\n * @param args\n * @param options\n */\n tag(args: string[], options?: SpawnTaskOptions): SpawnTask<GitContext> {\n return this.command('tag', args, options);\n }\n\n /**\n * Uses git diff to detect if given files have been affected since given reference\n *\n * @param reference\n * @param files\n * @param opts\n */\n isAffected(reference: string, files: string[] = [], opts?: SpawnTaskOptions): Promise<boolean> {\n return new Promise((resolve, reject) => {\n const task = this.diff(['--quiet', reference, '--', ...files], opts);\n\n once$(task, 'status.done', () => resolve(false));\n once$(task, 'status.failed', () => {\n if (task.exitCode) {\n resolve(true);\n } else {\n reject(new Error(`Task ${task.name} failed`));\n }\n });\n });\n }\n\n /**\n * List git branches\n *\n * @param args\n * @param opts\n */\n 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 /**\n * List git tags\n *\n * @param args\n * @param opts\n */\n 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","import { Logger, withLabel } from '@jujulego/logger';\n\nimport { GitService } from '@/src/commons/git.service.ts';\nimport { type Workspace } from '@/src/project/workspace.ts';\nimport { lazyInject } from '@/src/inversify.config.ts';\n\nimport { type PipelineFilter } from './pipeline.ts';\n\n// Class\nexport class AffectedFilter implements PipelineFilter {\n // Properties\n @lazyInject(Logger)\n private readonly _logger: Logger;\n\n @lazyInject(GitService)\n private readonly _git: GitService;\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(withLabel(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 this._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 this._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.warning(`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","import { type Workspace } from '@/src/project/workspace.ts';\nimport { type Awaitable } from '@/src/types.ts';\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","import { type Workspace } from '@/src/project/workspace.ts';\n\nimport { type PipelineFilter } from './pipeline.ts';\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","import { type Workspace } from '@/src/project/workspace.ts';\n\nimport { type PipelineFilter } from './pipeline.ts';\n\n// Filter\nexport class ScriptsFilter implements PipelineFilter {\n // Constructor\n constructor(readonly scripts: string[], readonly all = false) {}\n\n // Methods\n test(workspace: Workspace): boolean {\n const scripts = Object.keys(workspace.manifest.scripts || {});\n\n if (this.all) {\n return this.scripts.every((scr) => scripts.includes(scr));\n } else {\n return this.scripts.some((scr) => scripts.includes(scr));\n }\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { type Task, type TaskOptions } from '@jujulego/tasks';\nimport { injectable } from 'inversify';\nimport path from 'node:path';\nimport { type Package } from 'normalize-package-data';\nimport { satisfies } from 'semver';\n\nimport { GitService } from '@/src/commons/git.service.ts';\nimport { CONFIG } from '@/src/config/config-loader.ts';\nimport { type IConfig } from '@/src/config/types.ts';\nimport { container, lazyInject } from '@/src/inversify.config.ts';\nimport { CommandTask } from '@/src/tasks/command-task.ts';\nimport { ScriptTask } from '@/src/tasks/script-task.ts';\nimport { combine } from '@/src/utils/streams.ts';\n\nimport { type Project } from './project.ts';\n\n// Types\nexport type WorkspaceDepsMode = 'all' | 'prod' | 'none';\n\nexport interface WorkspaceRunOptions extends Omit<TaskOptions, 'logger'> {\n buildDeps?: WorkspaceDepsMode;\n buildScript?: string;\n}\n\n// Class\n@injectable()\nexport class Workspace {\n // Attributes\n private readonly _logger: Logger;\n private readonly _affectedCache = new Map<string, Promise<boolean>>();\n private readonly _tasks = new Map<string, ScriptTask>();\n\n @lazyInject(GitService)\n private readonly _git: GitService;\n\n @lazyInject(CONFIG)\n private readonly _config: IConfig;\n\n // Constructor\n constructor(\n private readonly _cwd: string,\n readonly manifest: Package,\n readonly project: Project\n ) {\n const logger = container.get(Logger);\n this._logger = logger.child(withLabel(this.manifest.name));\n }\n\n // Methods\n private _satisfies(from: Workspace, range: string): boolean {\n if (range.startsWith('file:')) {\n return path.resolve(from.cwd, range.substring(5)) === this.cwd;\n }\n\n if (range.startsWith('workspace:')) {\n range = range.substring(10);\n }\n\n return !this.version || satisfies(this.version, range);\n }\n\n private async _buildDependencies(task: Task, opts: WorkspaceRunOptions) {\n // Generators\n const generators: AsyncGenerator<Workspace, void>[] = [];\n\n switch (opts.buildDeps ?? 'all') {\n case 'all':\n generators.unshift(this.devDependencies());\n\n // eslint-disable-next no-fallthrough\n case 'prod':\n generators.unshift(this.dependencies());\n }\n\n // Build deps\n for await (const dep of combine(...generators)) {\n const build = await dep.build(opts);\n\n if (build) {\n task.dependsOn(build);\n }\n }\n }\n\n private async _isAffected(reference: string): Promise<boolean> {\n const isAffected = await this._git.isAffected(reference, [this.cwd], {\n cwd: this.project.root,\n logger: this._logger,\n });\n\n if (isAffected) {\n return true;\n }\n\n // Test dependencies\n const proms: Promise<boolean>[] = [];\n\n for await (const dep of combine(this.dependencies(), this.devDependencies())) {\n proms.push(dep.isAffected(reference));\n }\n\n const results = await Promise.all(proms);\n return results.some(r => r);\n }\n\n async isAffected(reference: string): Promise<boolean> {\n let isAffected = this._affectedCache.get(reference);\n\n if (!isAffected) {\n isAffected = this._isAffected(reference);\n this._affectedCache.set(reference, isAffected);\n }\n\n return await isAffected;\n }\n\n private async* _loadDependencies(dependencies: Record<string, string>, kind: string): AsyncGenerator<Workspace, void> {\n for (const [dep, range] of Object.entries(dependencies)) {\n const ws = await this.project.workspace(dep);\n\n if (ws) {\n if (ws._satisfies(this, range)) {\n yield ws;\n } else {\n this._logger.warning(`Ignoring ${kind} ${ws.reference} as it does not match requirement ${range}`);\n }\n }\n }\n }\n\n async* dependencies(): AsyncGenerator<Workspace, void> {\n if (!this.manifest.dependencies) return;\n\n for await (const ws of this._loadDependencies(this.manifest.dependencies, 'dependency')) {\n yield ws;\n }\n }\n\n async* devDependencies(): AsyncGenerator<Workspace, void> {\n if (!this.manifest.devDependencies) return;\n\n for await (const ws of this._loadDependencies(this.manifest.devDependencies, 'devDependency')) {\n yield ws;\n }\n }\n\n async exec(command: string, args: string[] = [], opts: WorkspaceRunOptions = {}): Promise<CommandTask> {\n const pm = await this.project.packageManager();\n const task = new CommandTask(this, command, args, {\n ...opts,\n logger: this._logger.child(withLabel(`${this.name}$${command}`)),\n superCommand: pm === 'yarn' ? ['yarn', 'exec'] : undefined\n });\n\n await this._buildDependencies(task, opts);\n\n return task;\n }\n\n async run(script: string, args: string[] = [], opts: WorkspaceRunOptions = {}): Promise<ScriptTask | null> {\n // Script not found\n if (!this.getScript(script)) {\n return null;\n }\n\n // Create task if it doesn't exist yet\n let task = this._tasks.get(script);\n\n if (!task) {\n task = new ScriptTask(this, script, args, {\n ...opts,\n logger: this._logger.child(withLabel(`${this.name}#${script}`)),\n runHooks: this._config.hooks,\n });\n\n await task.prepare();\n await this._buildDependencies(task, opts);\n\n this._tasks.set(script, task);\n }\n\n return task;\n }\n\n async build(opts: WorkspaceRunOptions = {}): Promise<ScriptTask | null> {\n const task = await this.run(opts?.buildScript ?? 'build', [], opts);\n\n if (!task) {\n this._logger.warning('Will not be built (no build script)');\n }\n\n return task;\n }\n\n getScript(script: string): string | null {\n const { scripts = {} } = this.manifest;\n return scripts[script] || null;\n }\n\n toJSON() {\n return {\n name: this.name,\n version: this.version,\n cwd: this.cwd,\n };\n }\n\n // Properties\n get name(): string {\n return this.manifest.name;\n }\n\n get version(): string {\n return this.manifest.version;\n }\n\n get reference(): string {\n return this.version ? `${this.name}@${this.version}` : this.name;\n }\n\n get cwd(): string {\n return path.resolve(this.project.root, this._cwd);\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { Lock } from '@jujulego/utils';\nimport { Glob } from 'glob';\nimport { injectable } from 'inversify';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport normalize, { type Package } from 'normalize-package-data';\nimport { PathScurry } from 'path-scurry';\n\nimport { Workspace } from './workspace.ts';\nimport { type PackageManager } from './types.ts';\n\n// Types\nexport interface ProjectOptions {\n packageManager?: PackageManager | undefined;\n}\n\n// Class\n@injectable()\nexport class Project {\n // Attributes\n private _mainWorkspace?: Workspace;\n private readonly _names = new Map<string, Workspace>();\n private readonly _workspaces = new Map<string, Workspace>();\n\n private readonly _scurry: PathScurry;\n private _workspaceGlob?: Glob<{ scurry: PathScurry, withFileTypes: true }>;\n\n private _packageManager?: PackageManager;\n private _isFullyLoaded = false;\n private _lock = new Lock();\n\n // Constructor\n constructor(\n private readonly _root: string,\n private readonly _logger: Logger,\n opts: ProjectOptions = {}\n ) {\n this._scurry = new PathScurry(this.root, { fs });\n\n if (opts.packageManager) {\n this._logger.debug`Forced use of ${opts.packageManager} in #!cwd:${this.root}`;\n this._packageManager = opts.packageManager;\n }\n }\n\n // Methods\n private async _loadManifest(dir: string): Promise<Package> {\n const file = path.resolve(this.root, dir, 'package.json');\n\n const relative = path.relative(this.root, path.dirname(file));\n const logger = this._logger.child(withLabel(relative ? `project@${relative}` : 'project'));\n\n logger.debug('Loading package.json ...');\n\n const data = await fs.promises.readFile(file, 'utf-8');\n const mnf = JSON.parse(data);\n normalize(mnf, (msg) => logger.verbose(msg));\n\n return mnf;\n }\n\n private async _loadWorkspace(dir: string): Promise<Workspace> {\n return await this._lock.with(async () => {\n let wks = this._workspaces.get(dir);\n\n if (!wks) {\n const manifest = await this._loadManifest(dir);\n wks = new Workspace(dir, manifest, this);\n\n this._workspaces.set(dir, wks);\n this._names.set(wks.name, wks);\n }\n\n return wks;\n });\n }\n\n async packageManager(): Promise<PackageManager> {\n if (!this._packageManager) {\n const files = await this._scurry.readdir(this.root, { withFileTypes: false });\n\n if (files.includes('yarn.lock')) {\n this._logger.debug`Detected yarn in #!cwd:${this.root}`;\n this._packageManager = 'yarn';\n } else if (files.includes('package-lock.json')) {\n this._logger.debug`Detected npm in #!cwd:${this.root}`;\n this._packageManager = 'npm';\n } else {\n this._logger.debug`No package manager recognized in #!cwd:${this.root}, defaults to npm`;\n this._packageManager = 'npm';\n }\n }\n\n return this._packageManager;\n }\n\n async mainWorkspace(): Promise<Workspace> {\n if (!this._mainWorkspace) {\n const manifest = await this._loadManifest('.');\n this._mainWorkspace = new Workspace('.', manifest, this);\n\n this._names.set(this._mainWorkspace.name, this._mainWorkspace);\n }\n\n return this._mainWorkspace;\n }\n\n async currentWorkspace(cwd = process.cwd()): Promise<Workspace | null> {\n let workspace: Workspace | null = null;\n cwd = path.resolve(cwd);\n\n for await (const wks of this.workspaces()) {\n if (cwd.startsWith(wks.cwd)) {\n workspace = wks;\n\n if (wks.cwd !== this.root) return wks;\n }\n }\n\n return workspace;\n }\n\n async* workspaces(): AsyncGenerator<Workspace, void> {\n const main = await this.mainWorkspace();\n yield main;\n\n if (this._isFullyLoaded) {\n for (const wks of this._names.values()) {\n if (wks.name !== main.name) yield wks;\n }\n } else {\n // Load child workspaces\n const { workspaces = [] } = main.manifest;\n this._workspaceGlob ??= new Glob(workspaces, { scurry: this._scurry, withFileTypes: true });\n\n for await (const dir of this._workspaceGlob) {\n try {\n // Check if dir is a directory\n if (dir.isDirectory()) {\n yield await this._loadWorkspace(dir.fullpath());\n }\n } catch (error) {\n if (error.code === 'ENOENT') {\n continue;\n }\n\n throw error;\n }\n }\n\n this._isFullyLoaded = true;\n }\n }\n\n async workspace(name?: string): Promise<Workspace | null> {\n // With current directory\n if (!name) {\n const dir = path.relative(this.root, process.cwd());\n return this._loadWorkspace(dir);\n }\n\n // Try name index\n const wks = this._names.get(name);\n\n if (wks) {\n return wks;\n }\n\n // Load workspaces\n if (!this._isFullyLoaded) {\n for await (const ws of this.workspaces()) {\n if (ws.name === name) {\n return ws;\n }\n }\n\n this._isFullyLoaded = true;\n }\n\n return null;\n }\n\n // Properties\n get root(): string {\n return path.resolve(this._root);\n }\n}\n","import { Logger, withLabel } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { Service } from '@/src/modules/service.ts';\n\nimport { Project, type ProjectOptions } from './project.ts';\n\n// Constants\nconst MANIFEST = 'package.json';\nconst LOCK_FILES = ['package-lock.json', 'yarn.lock'];\n\n// Types\nexport interface IsProjectRoot {\n hasManifest: boolean;\n hasLockFile: boolean;\n}\n\n// Class\n@Service()\nexport class ProjectRepository {\n // Attributes\n private readonly _logger: Logger;\n private readonly _cache = new Map<string, Project>();\n private readonly _roots = new Map<string, string>();\n\n // Constructor\n constructor(@inject(Logger) logger: Logger) {\n this._logger = logger.child(withLabel('projects'));\n }\n\n // Methods\n async isProjectRoot(dir: string): Promise<IsProjectRoot> {\n const files = await fs.readdir(dir);\n\n return {\n hasManifest: files.includes(MANIFEST),\n hasLockFile: LOCK_FILES.some((lock) => files.includes(lock)),\n };\n }\n\n async searchProjectRoot(directory: string): Promise<string> {\n directory = path.resolve(directory);\n\n // Test all ancestors\n const steps: string[] = [];\n let foundManifest = false;\n let projectRoot = directory;\n let dir = directory;\n let prev = dir;\n\n do {\n // Check cache\n const root = this._roots.get(dir);\n\n if (root) {\n projectRoot = root;\n foundManifest = true;\n break;\n }\n\n // Look for files\n const { hasManifest, hasLockFile } = await this.isProjectRoot(dir);\n steps.push(dir);\n\n if (hasManifest) {\n projectRoot = dir;\n foundManifest = true;\n }\n\n if (hasLockFile) {\n break;\n }\n\n prev = dir;\n dir = path.dirname(dir);\n } while (prev !== dir);\n\n // Cache result\n for (const dir of steps) {\n if (dir.startsWith(projectRoot)) {\n this._roots.set(dir, projectRoot);\n }\n }\n\n // Log it\n if (foundManifest) {\n this._logger.debug`Project root found at #!cwd:${projectRoot}`;\n } else {\n this._logger.debug`Project root not found, keeping #!cwd:${projectRoot}`;\n }\n\n return projectRoot;\n }\n\n getProject(root: string, opts?: ProjectOptions): Project {\n let project = this._cache.get(root);\n\n if (!project) {\n project = new Project(root, this._logger, opts);\n this._cache.set(root, project);\n }\n\n return project;\n }\n}\n","import { inject } from 'inversify';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { CURRENT } from '@/src/constants.ts';\nimport { ContextService } from '@/src/commons/context.service.ts';\nimport { container, lazyInjectNamed } from '@/src/inversify.config.ts';\nimport { type IMiddleware, Middleware } from '@/src/modules/middleware.ts';\nimport { Project } from '@/src/project/project.ts';\nimport { ProjectRepository } from '@/src/project/project.repository.ts';\nimport { type PackageManager } from '@/src/project/types.ts';\n\n// Types\nexport interface ILoadProjectArgs {\n project?: string;\n 'package-manager'?: PackageManager;\n}\n\n// Middleware\n@Middleware()\nexport class LoadProject implements IMiddleware<ILoadProjectArgs> {\n // Constructor\n constructor(\n @inject(ProjectRepository)\n private readonly projects: ProjectRepository,\n @inject(ContextService)\n private readonly context: ContextService,\n ) {}\n\n // Methods\n builder(parser: Argv) {\n return parser\n .option('project', {\n alias: 'p',\n type: 'string',\n description: 'Project root directory'\n })\n .option('package-manager', {\n choices: ['yarn', 'npm'] as const,\n type: 'string',\n description: 'Force package manager'\n });\n }\n\n async handler(args: ArgumentsCamelCase<ILoadProjectArgs>): Promise<void> {\n if (!this.context.project || args.project) {\n args.project = await this.projects.searchProjectRoot(args.project ?? process.cwd());\n\n this.context.project = this.projects.getProject(args.project, {\n packageManager: args.packageManager\n });\n } else {\n args.project = this.context.project.root;\n }\n }\n}\n\n// Lazy injection\nexport function LazyCurrentProject() {\n return lazyInjectNamed(Project, CURRENT);\n}\n\ncontainer.bind(Project)\n .toDynamicValue(({ container }) => {\n const ctx = container.get(ContextService);\n const prj = ctx.project;\n\n if (!prj) {\n throw new Error('Cannot inject current project, it not yet defined');\n }\n\n return prj;\n })\n .whenTargetNamed(CURRENT);\n","import { Logger } from '@jujulego/logger';\nimport { inject } from 'inversify';\nimport symbols from 'log-symbols';\nimport { type ArgumentsCamelCase, type Argv } from 'yargs';\n\nimport { ContextService } from '@/src/commons/context.service.ts';\nimport { CURRENT } from '@/src/constants.ts';\nimport { container, lazyInjectNamed } from '@/src/inversify.config.ts';\nimport { type IMiddleware, Middleware } from '@/src/modules/middleware.ts';\nimport { type Project } from '@/src/project/project.ts';\nimport { Workspace } from '@/src/project/workspace.ts';\nimport { ExitException } from '@/src/utils/exit.ts';\n\nimport { ILoadProjectArgs, LazyCurrentProject } from './load-project.ts';\n\n// Types\nexport interface ILoadWorkspaceArgs extends ILoadProjectArgs {\n workspace?: string;\n}\n\n// Middleware\n@Middleware()\nexport class LoadWorkspace implements IMiddleware<ILoadWorkspaceArgs> {\n // Lazy injections\n @LazyCurrentProject()\n readonly project: Project;\n\n // Constructor\n constructor(\n @inject(ContextService)\n private readonly context: ContextService,\n @inject(Logger)\n private readonly logger: Logger,\n ) {}\n\n // Methods\n builder(parser: Argv) {\n return parser\n .option('workspace', {\n alias: 'w',\n type: 'string',\n desc: 'Workspace to use'\n });\n }\n\n async handler(args: ArgumentsCamelCase<ILoadWorkspaceArgs>): Promise<void> {\n let workspace = this.context.workspace ?? null;\n\n if (!workspace || args.workspace) {\n if (args.workspace) {\n workspace = await this.project.workspace(args.workspace);\n } else if (process.cwd().startsWith(this.project.root)) {\n workspace = await this.project.currentWorkspace();\n } else {\n workspace = await this.project.mainWorkspace();\n }\n }\n\n if (!workspace) {\n this.logger.error(`${symbols.error} Workspace \"${args.workspace || '.'}\" not found`);\n throw new ExitException(1, 'Workspace not found');\n } else {\n this.context.workspace = workspace;\n }\n }\n}\n\n// Decorators\nexport function LazyCurrentWorkspace() {\n return lazyInjectNamed(Workspace, CURRENT);\n}\n\ncontainer.bind(Workspace)\n .toDynamicValue(({ container }) => {\n const ctx = container.get(ContextService);\n const wks = ctx.workspace;\n\n if (!wks) {\n throw new Error('Cannot inject current workspace, it not yet defined');\n }\n\n return wks;\n })\n .whenTargetNamed(CURRENT);\n","import { ContainerModule, id, type interfaces as int } from 'inversify';\n\nimport { type Class, type Type } from '@/src/types.ts';\n\nimport { type ICommand } from './command.ts';\nimport { getRegistry, setModule } from './module.ts';\n\n// Types\nexport interface IPluginOpts {\n readonly name?: string;\n readonly commands: Type<ICommand>[];\n}\n\nexport class PluginModule extends ContainerModule implements IPluginOpts {\n // Attributes\n readonly id = id();\n\n // Constructor\n constructor(\n readonly name: string,\n readonly commands: Type<ICommand>[],\n ) {\n super((...args: Parameters<int.ContainerModuleCallBack>) => {\n for (const command of this.commands) {\n const registry = getRegistry(command);\n registry(...args);\n }\n });\n }\n}\n\n// Decorator\nexport function Plugin(opts: IPluginOpts) {\n return (target: Class) => {\n const name = opts.name ?? target.name;\n const module = new PluginModule(name, opts.commands);\n\n setModule(target, module);\n };\n}\n","export class TaskExpressionError extends Error {}\n\nexport class TaskSyntaxError extends Error {}","import { Logger } from '@jujulego/logger';\nimport { FallbackGroup, type GroupTask, ParallelGroup, SequenceGroup, type Task } from '@jujulego/tasks';\nimport { inject } from 'inversify';\nimport moo from 'moo';\n\nimport { Service } from '@/src/modules/service.ts';\nimport { type Workspace, type WorkspaceRunOptions } from '@/src/project/workspace.ts';\nimport { TaskExpressionError, TaskSyntaxError } from './errors.ts';\n\n// Interfaces\nexport interface TaskNode {\n script: string;\n args: string[];\n}\n\nexport interface GroupNode {\n operator: string;\n tasks: (TaskNode | GroupNode)[];\n}\n\nexport interface TaskTree {\n roots: (TaskNode | GroupNode)[];\n}\n\n// Service\n@Service()\nexport class TaskExpressionService {\n // Statics\n static isTaskNode(node: TaskNode | GroupNode): node is TaskNode {\n return 'script' in node;\n }\n\n private static _sequenceOperatorWarn = true;\n\n // Constructor\n constructor(\n @inject(Logger)\n private readonly _logger: Logger\n ) {}\n\n // Methods\n private _lexer(): moo.Lexer {\n return moo.states({\n task: {\n lparen: '(',\n whitespace: /[ \\t]+/,\n script: { match: /[-_:a-zA-Z0-9]+/, push: 'operatorOrArgument' },\n string: [\n { // single cotted\n match: /'(?:\\\\['\\\\]|[^\\r\\n'\\\\])+'/,\n push: 'operator',\n value: x => x.slice(1, -1).replace(/\\\\(['\\\\])/g, '$1')\n },\n { // double cotted\n match: /\"(?:\\\\[\"\\\\]|[^\\r\\n\"\\\\])+\"/,\n push: 'operator',\n value: x => x.slice(1, -1).replace(/\\\\([\"\\\\])/g, '$1')\n }\n ],\n },\n operator: {\n rparen: ')',\n whitespace: /[ \\t]+/,\n operator: { match: ['->', '&&', '//', '||'], pop: 1 },\n },\n operatorOrArgument: {\n rparen: ')',\n whitespace: /[ \\t]+/,\n operator: { match: ['->', '&&', '//', '||'], pop: 1 },\n argument: [\n { match: /[-_:a-zA-Z0-9]+/ },\n { // single cotted\n match: /'(?:\\\\['\\\\]|[^\\r\\n'\\\\])+'/,\n value: x => x.slice(1, -1).replace(/\\\\(['\\\\])/g, '$1')\n },\n { // double cotted\n match: /\"(?:\\\\[\"\\\\]|[^\\r\\n\"\\\\])+\"/,\n value: x => x.slice(1, -1).replace(/\\\\([\"\\\\])/g, '$1')\n }\n ],\n }\n });\n }\n\n private _nextNode(lexer: moo.Lexer, i = 0): TaskNode | GroupNode | null {\n let node: TaskNode | GroupNode | null = null;\n\n for (const token of lexer) {\n // Ignore whitespaces\n if (token.type === 'whitespace') {\n continue;\n }\n\n // rparen = end of group\n if (token.type === 'rparen') {\n break;\n }\n\n // Handle argument\n if (token.type === 'argument') {\n if (!node) {\n throw new TaskSyntaxError(lexer.formatError(token, 'Unexpected argument'));\n } else if (TaskExpressionService.isTaskNode(node)) {\n node.args.push(token.value);\n } else {\n const lastTask = node.tasks[node.tasks.length - 1];\n\n if (!lastTask || !TaskExpressionService.isTaskNode(lastTask)) {\n throw new TaskSyntaxError(lexer.formatError(token, 'Unexpected argument'));\n } else {\n lastTask.args.push(token.value);\n }\n }\n\n continue;\n }\n\n // Handle operator\n if (token.type === 'operator') {\n const operator = token.value;\n\n if (!node) {\n throw new TaskSyntaxError(lexer.formatError(token, 'Unexpected operator'));\n } else if (TaskExpressionService.isTaskNode(node)) {\n node = { operator, tasks: [node] };\n\n continue;\n } else {\n if (node.operator !== operator) {\n node = { operator, tasks: [node] };\n }\n\n continue;\n }\n }\n\n // Build \"child\"\n let child: TaskNode | GroupNode;\n\n if (token.type === 'script') {\n child = { script: token.value, args: [] };\n } else if (token.type === 'string') {\n const [script, ...args] = token.value.split(/ +/);\n child = { script, args };\n } else if (token.type === 'lparen') {\n const res = this._nextNode(lexer, i+1);\n\n if (!res) {\n throw new TaskSyntaxError(lexer.formatError(token, 'Empty group found'));\n }\n\n child = res;\n } else {\n throw new TaskSyntaxError(lexer.formatError(token, 'Unexpected token'));\n }\n\n if (!node) {\n node = child;\n } else if (TaskExpressionService.isTaskNode(node)) {\n throw new TaskSyntaxError(lexer.formatError(token, 'Unexpected token, expected an operator'));\n } else {\n node.tasks.push(child);\n }\n }\n\n return node;\n }\n\n parse(expr: string): TaskTree {\n const lexer = this._lexer().reset(expr);\n\n const tree: TaskTree = {\n roots: [],\n };\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const node = this._nextNode(lexer);\n\n if (node) {\n tree.roots.push(node);\n } else {\n break;\n }\n }\n\n return tree;\n }\n\n *extractScripts(node: TaskTree | TaskNode | GroupNode): Generator<string> {\n if ('roots' in node) {\n for (const child of node.roots) {\n yield* this.extractScripts(child);\n }\n } else if (TaskExpressionService.isTaskNode(node)) {\n yield node.script;\n } else {\n for (const child of node.tasks) {\n yield* this.extractScripts(child);\n }\n }\n }\n\n async buildTask(node: TaskNode | GroupNode, workspace: Workspace, opts?: WorkspaceRunOptions): Promise<Task> {\n if (TaskExpressionService.isTaskNode(node)) {\n const task = await workspace.run(node.script, node.args, opts);\n\n if (!task) {\n throw new TaskExpressionError(`Workspace ${workspace.name} have no ${node.script} script`);\n }\n\n return task;\n } else {\n let group: GroupTask;\n\n if (node.operator === '//') {\n group = new ParallelGroup('In parallel', {}, {\n logger: this._logger,\n });\n } else if (node.operator === '||') {\n group = new FallbackGroup('Fallbacks', {}, {\n logger: this._logger,\n });\n } else {\n if (node.operator === '->' && TaskExpressionService._sequenceOperatorWarn) {\n this._logger.warn('Sequence operator -> is deprecated in favor of &&. It will be removed in a next major release.');\n TaskExpressionService._sequenceOperatorWarn = true;\n }\n\n group = new SequenceGroup('In sequence', {}, {\n logger: this._logger,\n });\n }\n\n for (const child of node.tasks) {\n group.add(await this.buildTask(child, workspace, opts));\n }\n\n return group;\n }\n }\n}\n","import { Newline, Text, type TextProps } from 'ink';\nimport { type ReactElement, useEffect, useState } from 'react';\n\nimport { type Workspace } from '@/src/project/workspace.ts';\n\n// Types\nexport interface WorkspaceTreeProps {\n workspace: Workspace;\n dev?: boolean;\n level?: ReactElement;\n}\n\n// Utils\nconst style = (dev: boolean): TextProps => ({ color: dev ? 'blue' : '' });\n\n// Component\nexport default function WorkspaceTree(props: WorkspaceTreeProps) {\n const { workspace: wks, dev = false, level = '' } = props;\n\n // State\n const [deps, setDeps] = useState<[Workspace, boolean | null][]>([]);\n\n // Effects\n useEffect(() => void (async () => {\n const deps: [Workspace, boolean | null][] = [];\n\n for await (const dep of wks.dependencies()) {\n deps.push([dep, null]);\n }\n\n for await (const dep of wks.devDependencies()) {\n deps.push([dep, true]);\n }\n\n setDeps(deps);\n })(), [wks]);\n\n // Render\n return (\n <Text>\n <Text {...style(dev)}>{wks.name}</Text>\n {wks.version && <Text color=\"grey\">@{wks.version}</Text>}\n {(deps.length > 0) && <Newline/>}\n\n {deps.map(([dep, isDev], idx) => (\n <Text key={dep.name}>\n {level}<Text {...style(dev)}>{idx === deps.length - 1 ? '└' : '├'}─{' '}</Text>\n <WorkspaceTree\n workspace={dep}\n dev={isDev ?? dev}\n level={<>{level}<Text {...style(dev)}>{idx === deps.length - 1 ? ' ' : '│'}{' '}</Text></>}\n />\n {(idx < deps.length - 1) && <Newline/>}\n </Text>\n ))}\n </Text>\n );\n}\n"],"names":["combine","generators","gen","streamLines","task","stream","off","off$","once$","current","chunk","iterate$","data","toString","lines","split","pop","line","err","message","GitService","constructor","logger","manager","command","cmd","args","options","opts","SpawnTask","hidden","on","debug","add","branch","diff","tag","isAffected","reference","files","Promise","resolve","reject","exitCode","Error","name","listBranches","result","push","replace","listTags","Service","inject","TASK_MANAGER","Logger","AffectedFilter","format","fallback","sort","_formatRevision","wks","_logger","child","withLabel","sortArgs","includes","branches","_git","cwd","length","tags","verbose","warning","test","workspace","rev","lazyInject","Pipeline","filter","_filters","_test","res","workspaces","PrivateFilter","value","manifest","private","ScriptsFilter","all","scripts","Object","keys","every","scr","some","Workspace","_cwd","project","_affectedCache","Map","_tasks","container","get","_satisfies","from","range","startsWith","path","substring","version","satisfies","_buildDependencies","buildDeps","unshift","devDependencies","dependencies","dep","build","dependsOn","_isAffected","root","proms","results","r","set","_loadDependencies","kind","entries","ws","exec","pm","packageManager","CommandTask","superCommand","undefined","run","script","getScript","ScriptTask","runHooks","_config","hooks","prepare","buildScript","toJSON","CONFIG","injectable","Project","_root","_names","_workspaces","_isFullyLoaded","_lock","Lock","_scurry","PathScurry","fs","_packageManager","_loadManifest","dir","file","relative","dirname","promises","readFile","mnf","JSON","parse","normalize","msg","_loadWorkspace","with","readdir","withFileTypes","mainWorkspace","_mainWorkspace","currentWorkspace","process","main","values","_workspaceGlob","Glob","scurry","isDirectory","fullpath","error","code","MANIFEST","LOCK_FILES","ProjectRepository","_cache","_roots","isProjectRoot","hasManifest","hasLockFile","lock","searchProjectRoot","directory","steps","foundManifest","projectRoot","prev","getProject","LoadProject","context","projects","builder","parser","option","alias","type","description","choices","handler","Middleware","ContextService","LazyCurrentProject","lazyInjectNamed","CURRENT","bind","toDynamicValue","ctx","prj","whenTargetNamed","LoadWorkspace","desc","symbols","ExitException","LazyCurrentWorkspace","PluginModule","ContainerModule","commands","registry","getRegistry","id","Plugin","target","module","setModule","TaskExpressionError","TaskSyntaxError","TaskExpressionService","isTaskNode","node","_sequenceOperatorWarn","_lexer","moo","states","lparen","whitespace","match","string","x","slice","operator","rparen","operatorOrArgument","argument","_nextNode","lexer","i","token","formatError","lastTask","tasks","expr","reset","tree","roots","extractScripts","buildTask","group","ParallelGroup","FallbackGroup","warn","SequenceGroup","style","dev","color","WorkspaceTree","props","level","deps","setDeps","useState","useEffect","_jsxs","Text","_jsx","Newline","map","isDev","idx","_Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jujulego/jill",
|
|
3
|
-
"version": "2.4.0-alpha.
|
|
3
|
+
"version": "2.4.0-alpha.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"@jujulego/quick-tag": "^0.3.3",
|
|
36
36
|
"@jujulego/tasks": "^2.2.0",
|
|
37
37
|
"@jujulego/utils": "^2.0.2",
|
|
38
|
+
"@swc/helpers": "^0.5.3",
|
|
38
39
|
"ajv": "^8.12.0",
|
|
39
40
|
"chalk": "^5.3.0",
|
|
40
41
|
"chalk-template": "^1.1.0",
|
|
@@ -57,23 +58,24 @@
|
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
60
|
"@jujulego/2d-maths": "1.6.0",
|
|
60
|
-
"@jujulego/vite-plugin-swc": "1.1.
|
|
61
|
+
"@jujulego/vite-plugin-swc": "1.1.1",
|
|
61
62
|
"@microsoft/eslint-formatter-sarif": "3.0.0",
|
|
62
63
|
"@rollup/plugin-json": "6.0.1",
|
|
64
|
+
"@rollup/plugin-node-resolve": "15.2.3",
|
|
63
65
|
"@swc/core": "1.3.96",
|
|
64
66
|
"@types/moo": "0.5.9",
|
|
65
|
-
"@types/node": "16.18.
|
|
67
|
+
"@types/node": "16.18.62",
|
|
66
68
|
"@types/normalize-package-data": "2.4.4",
|
|
67
69
|
"@types/react": "18.2.37",
|
|
68
70
|
"@types/semver": "7.5.5",
|
|
69
71
|
"@types/yargs": "17.0.31",
|
|
70
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
71
|
-
"@typescript-eslint/parser": "6.
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "6.11.0",
|
|
73
|
+
"@typescript-eslint/parser": "6.11.0",
|
|
72
74
|
"@vitest/coverage-v8": "0.34.6",
|
|
73
75
|
"@vitest/expect": "0.34.6",
|
|
74
76
|
"@vitest/spy": "0.34.6",
|
|
75
77
|
"browserslist": "4.22.1",
|
|
76
|
-
"eslint": "8.
|
|
78
|
+
"eslint": "8.54.0",
|
|
77
79
|
"eslint-plugin-react": "7.33.2",
|
|
78
80
|
"eslint-plugin-react-hooks": "4.6.0",
|
|
79
81
|
"eslint-plugin-vitest": "0.3.9",
|
|
@@ -84,9 +86,9 @@
|
|
|
84
86
|
"shx": "0.3.4",
|
|
85
87
|
"ts-node": "10.9.1",
|
|
86
88
|
"typescript": "5.2.2",
|
|
87
|
-
"vite": "5.0.0
|
|
89
|
+
"vite": "5.0.0",
|
|
88
90
|
"vite-tsconfig-paths": "4.2.1",
|
|
89
91
|
"vitest": "0.34.6"
|
|
90
92
|
},
|
|
91
|
-
"packageManager": "yarn@3.
|
|
93
|
+
"packageManager": "yarn@3.7.0"
|
|
92
94
|
}
|