@jujulego/jill 2.1.0-alpha.1 → 2.1.0-alpha.3

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 (89) hide show
  1. package/dist/commands/each.d.ts.map +1 -1
  2. package/dist/commands/each.js +1 -1
  3. package/dist/commands/each.js.map +1 -1
  4. package/dist/commands/group.d.ts +1 -5
  5. package/dist/commands/group.d.ts.map +1 -1
  6. package/dist/commands/group.js +11 -34
  7. package/dist/commands/group.js.map +1 -1
  8. package/dist/commands/list.d.ts.map +1 -1
  9. package/dist/commands/run.d.ts.map +1 -1
  10. package/dist/commands/tree.d.ts.map +1 -1
  11. package/dist/filters/affected.filter.d.ts.map +1 -1
  12. package/dist/filters/index.d.ts.map +1 -1
  13. package/dist/filters/pipeline.d.ts.map +1 -1
  14. package/dist/filters/private.filter.d.ts.map +1 -1
  15. package/dist/filters/scripts.filter.d.ts.map +1 -1
  16. package/dist/git.d.ts.map +1 -1
  17. package/dist/main.d.ts.map +1 -1
  18. package/dist/middlewares/global-config.d.ts +1 -1
  19. package/dist/middlewares/global-config.d.ts.map +1 -1
  20. package/dist/middlewares/global-config.js +7 -0
  21. package/dist/middlewares/global-config.js.map +1 -1
  22. package/dist/middlewares/index.d.ts.map +1 -1
  23. package/dist/middlewares/load-project.d.ts.map +1 -1
  24. package/dist/middlewares/load-project.js +0 -1
  25. package/dist/middlewares/load-project.js.map +1 -1
  26. package/dist/middlewares/load-workspace.d.ts.map +1 -1
  27. package/dist/middlewares/setup-ink.d.ts.map +1 -1
  28. package/dist/project/index.d.ts.map +1 -1
  29. package/dist/project/project.d.ts.map +1 -1
  30. package/dist/project/workspace.d.ts.map +1 -1
  31. package/dist/services/index.d.ts +1 -0
  32. package/dist/services/index.d.ts.map +1 -1
  33. package/dist/services/index.js +1 -0
  34. package/dist/services/index.js.map +1 -1
  35. package/dist/services/inversify.config.d.ts.map +1 -1
  36. package/dist/services/logger.service.d.ts.map +1 -1
  37. package/dist/services/spinner.service.d.ts +3 -5
  38. package/dist/services/spinner.service.d.ts.map +1 -1
  39. package/dist/services/spinner.service.js +6 -17
  40. package/dist/services/spinner.service.js.map +1 -1
  41. package/dist/services/task-expr.service.d.ts +19 -0
  42. package/dist/services/task-expr.service.d.ts.map +1 -0
  43. package/dist/services/task-expr.service.js +172 -0
  44. package/dist/services/task-expr.service.js.map +1 -0
  45. package/dist/services/task-manager.service.d.ts.map +1 -1
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/ui/global-spinner.d.ts.map +1 -1
  48. package/dist/ui/global-spinner.js +1 -1
  49. package/dist/ui/global-spinner.js.map +1 -1
  50. package/dist/ui/group-task-spinner.d.ts.map +1 -1
  51. package/dist/ui/group-task-spinner.js +1 -1
  52. package/dist/ui/group-task-spinner.js.map +1 -1
  53. package/dist/ui/index.d.ts +1 -0
  54. package/dist/ui/index.d.ts.map +1 -1
  55. package/dist/ui/index.js +1 -0
  56. package/dist/ui/index.js.map +1 -1
  57. package/dist/ui/layout.d.ts.map +1 -1
  58. package/dist/ui/list.d.ts.map +1 -1
  59. package/dist/ui/static-logs.d.ts.map +1 -1
  60. package/dist/ui/task-manager-spinner.d.ts.map +1 -1
  61. package/dist/ui/task-name.d.ts.map +1 -1
  62. package/dist/ui/task-spinner.d.ts.map +1 -1
  63. package/dist/ui/task-spinner.js +6 -4
  64. package/dist/ui/task-spinner.js.map +1 -1
  65. package/dist/ui/workspace-tree.d.ts.map +1 -1
  66. package/dist/ui/workspace-tree.js +3 -2
  67. package/dist/ui/workspace-tree.js.map +1 -1
  68. package/dist/utils/index.d.ts +3 -0
  69. package/dist/utils/index.d.ts.map +1 -0
  70. package/dist/{index.js → utils/index.js} +3 -7
  71. package/dist/utils/index.js.map +1 -0
  72. package/dist/utils/streams.d.ts +3 -0
  73. package/dist/utils/streams.d.ts.map +1 -0
  74. package/dist/{utils.js → utils/streams.js} +6 -28
  75. package/dist/utils/streams.js.map +1 -0
  76. package/dist/utils/string.d.ts +1 -0
  77. package/dist/utils/string.d.ts.map +1 -0
  78. package/dist/utils/string.js +14 -0
  79. package/dist/utils/string.js.map +1 -0
  80. package/dist/{utils.d.ts → utils/yargs.d.ts} +2 -6
  81. package/dist/utils/yargs.d.ts.map +1 -0
  82. package/dist/utils/yargs.js +33 -0
  83. package/dist/utils/yargs.js.map +1 -0
  84. package/package.json +10 -13
  85. package/dist/index.d.ts +0 -7
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js.map +0 -1
  88. package/dist/utils.d.ts.map +0 -1
  89. package/dist/utils.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["ui/workspace-tree.js"],"sourcesContent":["import { Newline, Text, TextProps } from 'ink';\nimport { FC, ReactElement, useEffect, useState } from 'react';\n\nimport { Workspace } from '../project';\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 const WorkspaceTree: FC<WorkspaceTreeProps> = (props) => {\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 <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 </Text>\n )) }\n </Text>\n );\n};\n"],"names":["WorkspaceTree","style","dev","color","props","workspace","wks","level","deps","setDeps","useState","useEffect","dep","dependencies","push","devDependencies","Text","name","version","Newline","map","isDev","idx","length"],"mappings":"AAAA;;;;+BAgBaA;;aAAAA;;;qBAhB4B;uBACa;AAWtD,QAAQ;AACR,MAAMC,QAAQ,CAACC,MAA6B,CAAA;QAAEC,OAAOD,MAAM,SAAS,EAAE;IAAC,CAAA;AAGhE,MAAMF,gBAAwC,CAACI,QAAU;IAC9D,MAAM,EAAEC,WAAWC,IAAG,EAAEJ,KAAM,KAAK,CAAA,EAAEK,OAAQ,GAAE,EAAE,GAAGH;IAEpD,QAAQ;IACR,MAAM,CAACI,MAAMC,QAAQ,GAAGC,IAAAA,eAAQ,EAAgC,EAAE;IAElE,UAAU;IACVC,IAAAA,gBAAS,EAAC,IAAM,KAAK,AAAC,CAAA,UAAY;YAChC,MAAMH,OAAsC,EAAE;YAE9C,WAAW,MAAMI,OAAON,IAAIO,YAAY,GAAI;gBAC1CL,KAAKM,IAAI,CAAC;oBAACF;oBAAK,IAAI;iBAAC;YACvB;YAEA,WAAW,MAAMA,QAAON,IAAIS,eAAe,GAAI;gBAC7CP,KAAKM,IAAI,CAAC;oBAACF;oBAAK,IAAI;iBAAC;YACvB;YAEAH,QAAQD;QACV,CAAA,KAAM;QAACF;KAAI;IAEX,SAAS;IACT,qBACE,sBAACU,SAAI;;0BACH,qBAACA,SAAI;gBAAE,GAAGf,MAAMC,IAAI;0BAAII,IAAIW,IAAI;;YAC9BX,IAAIY,OAAO,kBAAK,sBAACF,SAAI;gBAACb,OAAM;;oBAAO;oBAAGG,IAAIY,OAAO;;;0BACnD,qBAACC,YAAO;YAENX,KAAKY,GAAG,CAAC,CAAC,CAACR,KAAKS,MAAM,EAAEC,oBACxB,sBAACN,SAAI;;wBACDT;sCAAO,sBAACS,SAAI;4BAAE,GAAGf,MAAMC,IAAI;;gCAAIoB,QAAQd,KAAKe,MAAM,GAAG,IAAI,MAAM,GAAG;gCAAC;gCAAE;;;sCACvE,qBAACvB;4BACCK,WAAWO;4BACXV,KAAKmB,SAASnB;4BACdK,qBAAO;;oCAAIA;kDAAO,sBAACS,SAAI;wCAAE,GAAGf,MAAMC,IAAI;;4CAAIoB,QAAQd,KAAKe,MAAM,GAAG,IAAI,MAAM,GAAG;4CAAG;;;;;;;mBALzEX,IAAIK,IAAI;;;AAW3B","file":"workspace-tree.js"}
1
+ {"version":3,"sources":["ui/workspace-tree.js"],"sourcesContent":["import { Newline, Text, TextProps } from 'ink';\nimport { FC, ReactElement, useEffect, useState } from 'react';\n\nimport { Workspace } from '../project';\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 const WorkspaceTree: FC<WorkspaceTreeProps> = (props) => {\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":["WorkspaceTree","style","dev","color","props","workspace","wks","level","deps","setDeps","useState","useEffect","dep","dependencies","push","devDependencies","Text","name","version","length","Newline","map","isDev","idx"],"mappings":"AAAA;;;;+BAgBaA;;aAAAA;;;qBAhB4B;uBACa;AAWtD,QAAQ;AACR,MAAMC,QAAQ,CAACC,MAA6B,CAAA;QAAEC,OAAOD,MAAM,SAAS,EAAE;IAAC,CAAA;AAGhE,MAAMF,gBAAwC,CAACI,QAAU;IAC9D,MAAM,EAAEC,WAAWC,IAAG,EAAEJ,KAAM,KAAK,CAAA,EAAEK,OAAQ,GAAE,EAAE,GAAGH;IAEpD,QAAQ;IACR,MAAM,CAACI,MAAMC,QAAQ,GAAGC,IAAAA,eAAQ,EAAgC,EAAE;IAElE,UAAU;IACVC,IAAAA,gBAAS,EAAC,IAAM,KAAK,AAAC,CAAA,UAAY;YAChC,MAAMH,OAAsC,EAAE;YAE9C,WAAW,MAAMI,OAAON,IAAIO,YAAY,GAAI;gBAC1CL,KAAKM,IAAI,CAAC;oBAACF;oBAAK,IAAI;iBAAC;YACvB;YAEA,WAAW,MAAMA,QAAON,IAAIS,eAAe,GAAI;gBAC7CP,KAAKM,IAAI,CAAC;oBAACF;oBAAK,IAAI;iBAAC;YACvB;YAEAH,QAAQD;QACV,CAAA,KAAM;QAACF;KAAI;IAEX,SAAS;IACT,qBACE,sBAACU,SAAI;;0BACH,qBAACA,SAAI;gBAAE,GAAGf,MAAMC,IAAI;0BAAII,IAAIW,IAAI;;YAC9BX,IAAIY,OAAO,kBAAI,sBAACF,SAAI;gBAACb,OAAM;;oBAAO;oBAAGG,IAAIY,OAAO;;;YAC/CV,KAAKW,MAAM,GAAG,mBAAM,qBAACC,YAAO;YAE7BZ,KAAKa,GAAG,CAAC,CAAC,CAACT,KAAKU,MAAM,EAAEC,oBACxB,sBAACP,SAAI;;wBACDT;sCAAO,sBAACS,SAAI;4BAAE,GAAGf,MAAMC,IAAI;;gCAAIqB,QAAQf,KAAKW,MAAM,GAAG,IAAI,MAAM,GAAG;gCAAC;gCAAE;;;sCACvE,qBAACnB;4BACCK,WAAWO;4BACXV,KAAKoB,SAASpB;4BACdK,qBAAO;;oCAAIA;kDAAO,sBAACS,SAAI;wCAAE,GAAGf,MAAMC,IAAI;;4CAAIqB,QAAQf,KAAKW,MAAM,GAAG,IAAI,MAAM,GAAG;4CAAG;;;;;;wBAE/EI,MAAMf,KAAKW,MAAM,GAAG,mBAAM,qBAACC,YAAO;;mBAP5BR,IAAIK,IAAI;;;AAY3B","file":"workspace-tree.js"}
@@ -0,0 +1,3 @@
1
+ export * from './streams';
2
+ export * from './string';
3
+ export * from './yargs';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC","file":"index.d.ts","sourcesContent":["export * from './streams';\nexport * from './string';\nexport * from './yargs';\n"]}
@@ -2,13 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
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);
5
+ _exportStar(require("./streams"), exports);
6
+ _exportStar(require("./string"), exports);
7
+ _exportStar(require("./yargs"), exports);
12
8
  function _exportStar(from, to) {
13
9
  Object.keys(from).forEach(function(k) {
14
10
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils/index.js"],"sourcesContent":["export * from './streams';\nexport * from './string';\nexport * from './yargs';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA","file":"index.js"}
@@ -0,0 +1,3 @@
1
+ import { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';
2
+ export declare function combine<T>(...generators: AsyncGenerator<T>[]): AsyncGenerator<T>;
3
+ export declare function streamLines(task: SpawnTask, stream: SpawnTaskStream): AsyncGenerator<string>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/streams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAI7D,wBAAuB,OAAO,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAIvF;AAED,wBAAuB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CA8BnG","file":"streams.d.ts","sourcesContent":["import { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';\nimport { streamEvents } from '@jujulego/event-tree';\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 ctrl = new AbortController();\n const reason = new Error('aborted');\n\n task.subscribe('completed', () => ctrl.abort(reason));\n\n // Stream\n let current = '';\n\n try {\n for await (const chunk of streamEvents(task, `stream.${stream}`, { signal: ctrl.signal })) {\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 !== reason) {\n throw err;\n }\n\n if (current) {\n yield current;\n }\n }\n}\n"]}
@@ -10,11 +10,7 @@ function _export(target, all) {
10
10
  }
11
11
  _export(exports, {
12
12
  combine: ()=>combine,
13
- streamLines: ()=>streamLines,
14
- applyMiddlewares: ()=>applyMiddlewares,
15
- defineCommand: ()=>defineCommand,
16
- defineMiddleware: ()=>defineMiddleware,
17
- capitalize: ()=>capitalize
13
+ streamLines: ()=>streamLines
18
14
  });
19
15
  const _eventTree = require("@jujulego/event-tree");
20
16
  async function* combine(...generators) {
@@ -25,7 +21,8 @@ async function* combine(...generators) {
25
21
  async function* streamLines(task, stream) {
26
22
  // Abort
27
23
  const ctrl = new AbortController();
28
- task.subscribe('completed', ()=>ctrl.abort());
24
+ const reason = new Error('aborted');
25
+ task.subscribe('completed', ()=>ctrl.abort(reason));
29
26
  // Stream
30
27
  let current = '';
31
28
  try {
@@ -33,14 +30,14 @@ async function* streamLines(task, stream) {
33
30
  signal: ctrl.signal
34
31
  })){
35
32
  const data = current + chunk.data.toString('utf-8');
36
- const lines = data.split(/\r?\n/g);
33
+ const lines = data.split(/\r?\n/);
37
34
  current = lines.pop() ?? '';
38
35
  for (const line of lines){
39
36
  yield line;
40
37
  }
41
38
  }
42
39
  } catch (err) {
43
- if (task.exitCode !== 0) {
40
+ if (err !== reason) {
44
41
  throw err;
45
42
  }
46
43
  if (current) {
@@ -48,24 +45,5 @@ async function* streamLines(task, stream) {
48
45
  }
49
46
  }
50
47
  }
51
- function applyMiddlewares(yargs, middlewares) {
52
- let tmp = yargs;
53
- for (const middleware of middlewares){
54
- if (middleware.builder) {
55
- tmp = middleware.builder(tmp);
56
- }
57
- tmp.middleware(middleware.handler);
58
- }
59
- return tmp;
60
- }
61
- function defineCommand(command) {
62
- return command;
63
- }
64
- function defineMiddleware(middleware) {
65
- return middleware;
66
- }
67
- function capitalize(txt) {
68
- return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();
69
- }
70
48
 
71
- //# sourceMappingURL=utils.js.map
49
+ //# sourceMappingURL=streams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils/streams.js"],"sourcesContent":["import { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';\nimport { streamEvents } from '@jujulego/event-tree';\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 ctrl = new AbortController();\n const reason = new Error('aborted');\n\n task.subscribe('completed', () => ctrl.abort(reason));\n\n // Stream\n let current = '';\n\n try {\n for await (const chunk of streamEvents(task, `stream.${stream}`, { signal: ctrl.signal })) {\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 !== reason) {\n throw err;\n }\n\n if (current) {\n yield current;\n }\n }\n}\n"],"names":["combine","streamLines","generators","gen","task","stream","ctrl","AbortController","reason","Error","subscribe","abort","current","chunk","streamEvents","signal","data","toString","lines","split","pop","line","err"],"mappings":"AAAA;;;;;;;;;;;IAIuBA,OAAO,MAAPA;IAMAC,WAAW,MAAXA;;2BATM;AAGtB,gBAAgBD,QAAW,GAAGE,UAA+B,EAAqB;IACvF,KAAK,MAAMC,OAAOD,WAAY;QAC5B,OAAOC;IACT;AACF;AAEO,gBAAgBF,YAAYG,IAAe,EAAEC,MAAuB,EAA0B;IACnG,QAAQ;IACR,MAAMC,OAAO,IAAIC;IACjB,MAAMC,SAAS,IAAIC,MAAM;IAEzBL,KAAKM,SAAS,CAAC,aAAa,IAAMJ,KAAKK,KAAK,CAACH;IAE7C,SAAS;IACT,IAAII,UAAU;IAEd,IAAI;QACF,WAAW,MAAMC,SAASC,IAAAA,uBAAY,EAACV,MAAM,CAAC,OAAO,EAAEC,OAAO,CAAC,EAAE;YAAEU,QAAQT,KAAKS,MAAM;QAAC,GAAI;YACzF,MAAMC,OAAOJ,UAAUC,MAAMG,IAAI,CAACC,QAAQ,CAAC;YAC3C,MAAMC,QAAQF,KAAKG,KAAK,CAAC;YAEzBP,UAAUM,MAAME,GAAG,MAAM;YAEzB,KAAK,MAAMC,QAAQH,MAAO;gBACxB,MAAMG;YACR;QACF;IACF,EAAE,OAAOC,KAAK;QACZ,IAAIA,QAAQd,QAAQ;YAClB,MAAMc,IAAI;QACZ,CAAC;QAED,IAAIV,SAAS;YACX,MAAMA;QACR,CAAC;IACH;AACF","file":"streams.js"}
@@ -0,0 +1 @@
1
+ export declare function capitalize(txt: string): string;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/string.ts"],"names":[],"mappings":"AACA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C","file":"string.d.ts","sourcesContent":["// Utils\nexport function capitalize(txt: string): string {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n}\n"]}
@@ -0,0 +1,14 @@
1
+ // Utils
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "capitalize", {
7
+ enumerable: true,
8
+ get: ()=>capitalize
9
+ });
10
+ function capitalize(txt) {
11
+ return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();
12
+ }
13
+
14
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils/string.js"],"sourcesContent":["// Utils\nexport function capitalize(txt: string): string {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n}\n"],"names":["capitalize","txt","charAt","toUpperCase","substring","toLowerCase"],"mappings":"AAAA,QAAQ;AACR;;;;+BAAgBA;;aAAAA;;AAAT,SAASA,WAAWC,GAAW,EAAU;IAC9C,OAAOA,IAAIC,MAAM,CAAC,GAAGC,WAAW,KAAKF,IAAIG,SAAS,CAAC,GAAGC,WAAW;AACnE","file":"string.js"}
@@ -1,13 +1,9 @@
1
- import { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';
2
1
  import { Arguments, Argv, CommandModule } from 'yargs';
3
- import { Awaitable } from './types';
4
- export declare function combine<T>(...generators: AsyncGenerator<T>[]): AsyncGenerator<T>;
5
- export declare function streamLines(task: SpawnTask, stream: SpawnTaskStream): AsyncGenerator<string>;
2
+ import { Awaitable } from '../types';
6
3
  export interface Middleware<T = unknown, U = unknown> {
7
4
  builder?: (yargs: Argv<T>) => Argv<U>;
8
5
  handler(args: Arguments<U>): Awaitable<void>;
9
6
  }
10
- export declare function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T>;
11
7
  export declare function defineCommand<T, U>(command: CommandModule<T, U>): CommandModule<T, U>;
12
8
  export declare function defineMiddleware<T, U>(middleware: Middleware<T, U>): Middleware<T, U>;
13
- export declare function capitalize(txt: string): string;
9
+ export declare function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T>;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/yargs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;CAC9C;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAErF;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAErF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAYtF","file":"yargs.d.ts","sourcesContent":["import { Arguments, Argv, CommandModule } from 'yargs';\n\nimport { Awaitable } from '../types';\n\n// Types\nexport interface Middleware<T = unknown, U = unknown> {\n builder?: (yargs: Argv<T>) => Argv<U>;\n handler(args: Arguments<U>): Awaitable<void>;\n}\n\n// Command utils\nexport function defineCommand<T, U>(command: CommandModule<T, U>): CommandModule<T, U> {\n return command;\n}\n\n// Middleware utils\nexport function defineMiddleware<T, U>(middleware: Middleware<T, U>): Middleware<T, U> {\n return middleware;\n}\n\nexport function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T> {\n let tmp: Argv<unknown> = yargs;\n\n for (const middleware of middlewares) {\n if (middleware.builder) {\n tmp = middleware.builder(tmp);\n }\n\n tmp.middleware(middleware.handler);\n }\n\n return tmp as Argv<T>;\n}\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ defineCommand: ()=>defineCommand,
13
+ defineMiddleware: ()=>defineMiddleware,
14
+ applyMiddlewares: ()=>applyMiddlewares
15
+ });
16
+ function defineCommand(command) {
17
+ return command;
18
+ }
19
+ function defineMiddleware(middleware) {
20
+ return middleware;
21
+ }
22
+ function applyMiddlewares(yargs, middlewares) {
23
+ let tmp = yargs;
24
+ for (const middleware of middlewares){
25
+ if (middleware.builder) {
26
+ tmp = middleware.builder(tmp);
27
+ }
28
+ tmp.middleware(middleware.handler);
29
+ }
30
+ return tmp;
31
+ }
32
+
33
+ //# sourceMappingURL=yargs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["utils/yargs.js"],"sourcesContent":["import { Arguments, Argv, CommandModule } from 'yargs';\n\nimport { Awaitable } from '../types';\n\n// Types\nexport interface Middleware<T = unknown, U = unknown> {\n builder?: (yargs: Argv<T>) => Argv<U>;\n handler(args: Arguments<U>): Awaitable<void>;\n}\n\n// Command utils\nexport function defineCommand<T, U>(command: CommandModule<T, U>): CommandModule<T, U> {\n return command;\n}\n\n// Middleware utils\nexport function defineMiddleware<T, U>(middleware: Middleware<T, U>): Middleware<T, U> {\n return middleware;\n}\n\nexport function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T> {\n let tmp: Argv<unknown> = yargs;\n\n for (const middleware of middlewares) {\n if (middleware.builder) {\n tmp = middleware.builder(tmp);\n }\n\n tmp.middleware(middleware.handler);\n }\n\n return tmp as Argv<T>;\n}\n"],"names":["defineCommand","defineMiddleware","applyMiddlewares","command","middleware","yargs","middlewares","tmp","builder","handler"],"mappings":"AAAA;;;;;;;;;;;IAWgBA,aAAa,MAAbA;IAKAC,gBAAgB,MAAhBA;IAIAC,gBAAgB,MAAhBA;;AATT,SAASF,cAAoBG,OAA4B,EAAuB;IACrF,OAAOA;AACT;AAGO,SAASF,iBAAuBG,UAA4B,EAAoB;IACrF,OAAOA;AACT;AAEO,SAASF,iBAAoBG,KAAc,EAAEC,WAAyB,EAAW;IACtF,IAAIC,MAAqBF;IAEzB,KAAK,MAAMD,cAAcE,YAAa;QACpC,IAAIF,WAAWI,OAAO,EAAE;YACtBD,MAAMH,WAAWI,OAAO,CAACD;QAC3B,CAAC;QAEDA,IAAIH,UAAU,CAACA,WAAWK,OAAO;IACnC;IAEA,OAAOF;AACT","file":"yargs.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jujulego/jill",
3
- "version": "2.1.0-alpha.1",
3
+ "version": "2.1.0-alpha.3",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,12 +11,7 @@
11
11
  "dist"
12
12
  ],
13
13
  "bin": "./bin/jill.js",
14
- "main": "./dist/index.js",
15
- "types": "./dist/index.d.ts",
16
- "exports": {
17
- "require": "./dist/index.js",
18
- "types": "./dist/index.d.ts"
19
- },
14
+ "main": "./dist/main.js",
20
15
  "scripts": {
21
16
  "lint": "eslint .",
22
17
  "clean": "gulp clean",
@@ -38,6 +33,7 @@
38
33
  "inversify": "^6.0.1",
39
34
  "inversify-inject-decorators": "^3.1.0",
40
35
  "log-symbols": "^4.1.0",
36
+ "moo": "^0.5.2",
41
37
  "normalize-package-data": "^5.0.0",
42
38
  "pretty-ms": "^7.0.1",
43
39
  "react": "^17.0.2",
@@ -51,23 +47,24 @@
51
47
  },
52
48
  "devDependencies": {
53
49
  "@jujulego/flow": "1.1.0",
54
- "@swc/core": "1.3.11",
50
+ "@swc/core": "1.3.14",
55
51
  "@swc/jest": "0.2.23",
56
52
  "@types/async-lock": "1.3.0",
57
53
  "@types/gulp": "4.0.9",
58
54
  "@types/gulp-sourcemaps": "0.0.35",
59
- "@types/jest": "29.2.0",
55
+ "@types/jest": "29.2.2",
56
+ "@types/moo": "0.5.5",
60
57
  "@types/ms": "0.7.31",
61
58
  "@types/node": "16.18.3",
62
59
  "@types/normalize-package-data": "2.4.1",
63
60
  "@types/react": "17.0.52",
64
61
  "@types/semver": "7.3.13",
65
62
  "@types/yargs": "17.0.13",
66
- "@typescript-eslint/eslint-plugin": "5.41.0",
67
- "@typescript-eslint/parser": "5.41.0",
63
+ "@typescript-eslint/eslint-plugin": "5.42.0",
64
+ "@typescript-eslint/parser": "5.42.0",
68
65
  "del": "6.1.1",
69
- "eslint": "8.26.0",
70
- "eslint-plugin-jest": "27.1.3",
66
+ "eslint": "8.27.0",
67
+ "eslint-plugin-jest": "27.1.4",
71
68
  "eslint-plugin-react": "7.31.10",
72
69
  "eslint-plugin-react-hooks": "4.6.0",
73
70
  "eslint-plugin-workspaces": "0.7.0",
package/dist/index.d.ts DELETED
@@ -1,7 +0,0 @@
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 +0,0 @@
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.map DELETED
@@ -1 +0,0 @@
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 +0,0 @@
1
- {"version":3,"sources":["utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,wBAAuB,OAAO,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAIvF;AAED,wBAAuB,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CA6BnG;AAGD,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IAClD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAYtF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAErF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAErF;AAGD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C","file":"utils.d.ts","sourcesContent":["import { streamEvents } from '@jujulego/event-tree';\nimport { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';\nimport { Arguments, Argv, CommandModule } from 'yargs';\nimport { Awaitable } from './types';\n\n// Stream 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 ctrl = new AbortController();\n\n task.subscribe('completed', () => ctrl.abort());\n\n // Stream\n let current = '';\n\n try {\n for await (const chunk of streamEvents(task, `stream.${stream}`, { signal: ctrl.signal })) {\n const data = current + chunk.data.toString('utf-8');\n const lines = data.split(/\\r?\\n/g);\n\n current = lines.pop() ?? '';\n\n for (const line of lines) {\n yield line;\n }\n }\n } catch (err) {\n if (task.exitCode !== 0) {\n throw err;\n }\n\n if (current) {\n yield current;\n }\n }\n}\n\n// Command utils\nexport interface Middleware<T = unknown, U = unknown> {\n builder?: (yargs: Argv<T>) => Argv<U>;\n handler(args: Arguments<U>): Awaitable<void>;\n}\n\nexport function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T> {\n let tmp: Argv<unknown> = yargs;\n\n for (const middleware of middlewares) {\n if (middleware.builder) {\n tmp = middleware.builder(tmp);\n }\n\n tmp.middleware(middleware.handler);\n }\n\n return tmp as Argv<T>;\n}\n\nexport function defineCommand<T, U>(command: CommandModule<T, U>): CommandModule<T, U> {\n return command;\n}\n\nexport function defineMiddleware<T, U>(middleware: Middleware<T, U>): Middleware<T, U> {\n return middleware;\n}\n\n// String utils\nexport function capitalize(txt: string): string {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n}\n"]}
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["utils.js"],"sourcesContent":["import { streamEvents } from '@jujulego/event-tree';\nimport { SpawnTask, SpawnTaskStream } from '@jujulego/tasks';\nimport { Arguments, Argv, CommandModule } from 'yargs';\nimport { Awaitable } from './types';\n\n// Stream 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 ctrl = new AbortController();\n\n task.subscribe('completed', () => ctrl.abort());\n\n // Stream\n let current = '';\n\n try {\n for await (const chunk of streamEvents(task, `stream.${stream}`, { signal: ctrl.signal })) {\n const data = current + chunk.data.toString('utf-8');\n const lines = data.split(/\\r?\\n/g);\n\n current = lines.pop() ?? '';\n\n for (const line of lines) {\n yield line;\n }\n }\n } catch (err) {\n if (task.exitCode !== 0) {\n throw err;\n }\n\n if (current) {\n yield current;\n }\n }\n}\n\n// Command utils\nexport interface Middleware<T = unknown, U = unknown> {\n builder?: (yargs: Argv<T>) => Argv<U>;\n handler(args: Arguments<U>): Awaitable<void>;\n}\n\nexport function applyMiddlewares<T>(yargs: Argv<T>, middlewares: Middleware[]): Argv<T> {\n let tmp: Argv<unknown> = yargs;\n\n for (const middleware of middlewares) {\n if (middleware.builder) {\n tmp = middleware.builder(tmp);\n }\n\n tmp.middleware(middleware.handler);\n }\n\n return tmp as Argv<T>;\n}\n\nexport function defineCommand<T, U>(command: CommandModule<T, U>): CommandModule<T, U> {\n return command;\n}\n\nexport function defineMiddleware<T, U>(middleware: Middleware<T, U>): Middleware<T, U> {\n return middleware;\n}\n\n// String utils\nexport function capitalize(txt: string): string {\n return txt.charAt(0).toUpperCase() + txt.substring(1).toLowerCase();\n}\n"],"names":["combine","streamLines","applyMiddlewares","defineCommand","defineMiddleware","capitalize","generators","gen","task","stream","ctrl","AbortController","subscribe","abort","current","chunk","streamEvents","signal","data","toString","lines","split","pop","line","err","exitCode","yargs","middlewares","tmp","middleware","builder","handler","command","txt","charAt","toUpperCase","substring","toLowerCase"],"mappings":"AAAA;;;;;;;;;;;IAMuBA,OAAO,MAAPA;IAMAC,WAAW,MAAXA;IAqCPC,gBAAgB,MAAhBA;IAcAC,aAAa,MAAbA;IAIAC,gBAAgB,MAAhBA;IAKAC,UAAU,MAAVA;;2BAxEa;AAMtB,gBAAgBL,QAAW,GAAGM,UAA+B,EAAqB;IACvF,KAAK,MAAMC,OAAOD,WAAY;QAC5B,OAAOC;IACT;AACF;AAEO,gBAAgBN,YAAYO,IAAe,EAAEC,MAAuB,EAA0B;IACnG,QAAQ;IACR,MAAMC,OAAO,IAAIC;IAEjBH,KAAKI,SAAS,CAAC,aAAa,IAAMF,KAAKG,KAAK;IAE5C,SAAS;IACT,IAAIC,UAAU;IAEd,IAAI;QACF,WAAW,MAAMC,SAASC,IAAAA,uBAAY,EAACR,MAAM,CAAC,OAAO,EAAEC,OAAO,CAAC,EAAE;YAAEQ,QAAQP,KAAKO,MAAM;QAAC,GAAI;YACzF,MAAMC,OAAOJ,UAAUC,MAAMG,IAAI,CAACC,QAAQ,CAAC;YAC3C,MAAMC,QAAQF,KAAKG,KAAK,CAAC;YAEzBP,UAAUM,MAAME,GAAG,MAAM;YAEzB,KAAK,MAAMC,QAAQH,MAAO;gBACxB,MAAMG;YACR;QACF;IACF,EAAE,OAAOC,KAAK;QACZ,IAAIhB,KAAKiB,QAAQ,KAAK,GAAG;YACvB,MAAMD,IAAI;QACZ,CAAC;QAED,IAAIV,SAAS;YACX,MAAMA;QACR,CAAC;IACH;AACF;AAQO,SAASZ,iBAAoBwB,KAAc,EAAEC,WAAyB,EAAW;IACtF,IAAIC,MAAqBF;IAEzB,KAAK,MAAMG,cAAcF,YAAa;QACpC,IAAIE,WAAWC,OAAO,EAAE;YACtBF,MAAMC,WAAWC,OAAO,CAACF;QAC3B,CAAC;QAEDA,IAAIC,UAAU,CAACA,WAAWE,OAAO;IACnC;IAEA,OAAOH;AACT;AAEO,SAASzB,cAAoB6B,OAA4B,EAAuB;IACrF,OAAOA;AACT;AAEO,SAAS5B,iBAAuByB,UAA4B,EAAoB;IACrF,OAAOA;AACT;AAGO,SAASxB,WAAW4B,GAAW,EAAU;IAC9C,OAAOA,IAAIC,MAAM,CAAC,GAAGC,WAAW,KAAKF,IAAIG,SAAS,CAAC,GAAGC,WAAW;AACnE","file":"utils.js"}