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

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 (170) hide show
  1. package/dist/239.js +3 -0
  2. package/dist/239.js.LICENSE.txt +73 -0
  3. package/dist/239.js.map +1 -0
  4. package/dist/main.js +2 -29
  5. package/dist/main.js.map +1 -1
  6. package/dist/runtime.js +2 -0
  7. package/dist/runtime.js.map +1 -0
  8. package/package.json +51 -52
  9. package/dist/commands/each.d.ts +0 -16
  10. package/dist/commands/each.d.ts.map +0 -1
  11. package/dist/commands/each.js +0 -118
  12. package/dist/commands/each.js.map +0 -1
  13. package/dist/commands/group.d.ts +0 -8
  14. package/dist/commands/group.d.ts.map +0 -1
  15. package/dist/commands/group.js +0 -70
  16. package/dist/commands/group.js.map +0 -1
  17. package/dist/commands/list.d.ts +0 -23
  18. package/dist/commands/list.d.ts.map +0 -1
  19. package/dist/commands/list.js +0 -170
  20. package/dist/commands/list.js.map +0 -1
  21. package/dist/commands/run.d.ts +0 -8
  22. package/dist/commands/run.d.ts.map +0 -1
  23. package/dist/commands/run.js +0 -71
  24. package/dist/commands/run.js.map +0 -1
  25. package/dist/commands/tree.d.ts +0 -3
  26. package/dist/commands/tree.d.ts.map +0 -1
  27. package/dist/commands/tree.js +0 -35
  28. package/dist/commands/tree.js.map +0 -1
  29. package/dist/filters/affected.filter.d.ts +0 -11
  30. package/dist/filters/affected.filter.d.ts.map +0 -1
  31. package/dist/filters/affected.filter.js +0 -82
  32. package/dist/filters/affected.filter.js.map +0 -1
  33. package/dist/filters/index.d.ts +0 -4
  34. package/dist/filters/index.d.ts.map +0 -1
  35. package/dist/filters/index.js +0 -21
  36. package/dist/filters/index.js.map +0 -1
  37. package/dist/filters/pipeline.d.ts +0 -11
  38. package/dist/filters/pipeline.d.ts.map +0 -1
  39. package/dist/filters/pipeline.js +0 -34
  40. package/dist/filters/pipeline.js.map +0 -1
  41. package/dist/filters/private.filter.d.ts +0 -7
  42. package/dist/filters/private.filter.d.ts.map +0 -1
  43. package/dist/filters/private.filter.js +0 -20
  44. package/dist/filters/private.filter.js.map +0 -1
  45. package/dist/filters/scripts.filter.d.ts +0 -7
  46. package/dist/filters/scripts.filter.d.ts.map +0 -1
  47. package/dist/filters/scripts.filter.js +0 -21
  48. package/dist/filters/scripts.filter.js.map +0 -1
  49. package/dist/git.d.ts +0 -16
  50. package/dist/git.d.ts.map +0 -1
  51. package/dist/git.js +0 -94
  52. package/dist/git.js.map +0 -1
  53. package/dist/main.d.ts +0 -1
  54. package/dist/main.d.ts.map +0 -1
  55. package/dist/middlewares/global-config.d.ts +0 -5
  56. package/dist/middlewares/global-config.d.ts.map +0 -1
  57. package/dist/middlewares/global-config.js +0 -36
  58. package/dist/middlewares/global-config.js.map +0 -1
  59. package/dist/middlewares/index.d.ts +0 -4
  60. package/dist/middlewares/index.d.ts.map +0 -1
  61. package/dist/middlewares/index.js +0 -21
  62. package/dist/middlewares/index.js.map +0 -1
  63. package/dist/middlewares/load-project.d.ts +0 -6
  64. package/dist/middlewares/load-project.d.ts.map +0 -1
  65. package/dist/middlewares/load-project.js +0 -40
  66. package/dist/middlewares/load-project.js.map +0 -1
  67. package/dist/middlewares/load-workspace.d.ts +0 -3
  68. package/dist/middlewares/load-workspace.d.ts.map +0 -1
  69. package/dist/middlewares/load-workspace.js +0 -42
  70. package/dist/middlewares/load-workspace.js.map +0 -1
  71. package/dist/middlewares/setup-ink.d.ts +0 -1
  72. package/dist/middlewares/setup-ink.d.ts.map +0 -1
  73. package/dist/middlewares/setup-ink.js +0 -22
  74. package/dist/middlewares/setup-ink.js.map +0 -1
  75. package/dist/project/index.d.ts +0 -2
  76. package/dist/project/index.d.ts.map +0 -1
  77. package/dist/project/index.js +0 -19
  78. package/dist/project/index.js.map +0 -1
  79. package/dist/project/project.d.ts +0 -25
  80. package/dist/project/project.d.ts.map +0 -1
  81. package/dist/project/project.js +0 -190
  82. package/dist/project/project.js.map +0 -1
  83. package/dist/project/workspace.d.ts +0 -34
  84. package/dist/project/workspace.d.ts.map +0 -1
  85. package/dist/project/workspace.js +0 -179
  86. package/dist/project/workspace.js.map +0 -1
  87. package/dist/services/index.d.ts +0 -5
  88. package/dist/services/index.d.ts.map +0 -1
  89. package/dist/services/index.js +0 -22
  90. package/dist/services/index.js.map +0 -1
  91. package/dist/services/inversify.config.d.ts +0 -11
  92. package/dist/services/inversify.config.d.ts.map +0 -1
  93. package/dist/services/inversify.config.js +0 -34
  94. package/dist/services/inversify.config.js.map +0 -1
  95. package/dist/services/logger.service.d.ts +0 -6
  96. package/dist/services/logger.service.d.ts.map +0 -1
  97. package/dist/services/logger.service.js +0 -75
  98. package/dist/services/logger.service.js.map +0 -1
  99. package/dist/services/spinner.service.d.ts +0 -16
  100. package/dist/services/spinner.service.d.ts.map +0 -1
  101. package/dist/services/spinner.service.js +0 -57
  102. package/dist/services/spinner.service.js.map +0 -1
  103. package/dist/services/task-expr.service.d.ts +0 -19
  104. package/dist/services/task-expr.service.d.ts.map +0 -1
  105. package/dist/services/task-expr.service.js +0 -172
  106. package/dist/services/task-expr.service.js.map +0 -1
  107. package/dist/services/task-manager.service.d.ts +0 -1
  108. package/dist/services/task-manager.service.d.ts.map +0 -1
  109. package/dist/services/task-manager.service.js +0 -18
  110. package/dist/services/task-manager.service.js.map +0 -1
  111. package/dist/types.d.ts +0 -1
  112. package/dist/types.d.ts.map +0 -1
  113. package/dist/types.js +0 -7
  114. package/dist/types.js.map +0 -1
  115. package/dist/ui/global-spinner.d.ts +0 -2
  116. package/dist/ui/global-spinner.d.ts.map +0 -1
  117. package/dist/ui/global-spinner.js +0 -65
  118. package/dist/ui/global-spinner.js.map +0 -1
  119. package/dist/ui/group-task-spinner.d.ts +0 -6
  120. package/dist/ui/group-task-spinner.d.ts.map +0 -1
  121. package/dist/ui/group-task-spinner.js +0 -54
  122. package/dist/ui/group-task-spinner.js.map +0 -1
  123. package/dist/ui/index.d.ts +0 -8
  124. package/dist/ui/index.d.ts.map +0 -1
  125. package/dist/ui/index.js +0 -25
  126. package/dist/ui/index.js.map +0 -1
  127. package/dist/ui/layout.d.ts +0 -2
  128. package/dist/ui/layout.d.ts.map +0 -1
  129. package/dist/ui/layout.js +0 -20
  130. package/dist/ui/layout.js.map +0 -1
  131. package/dist/ui/list.d.ts +0 -6
  132. package/dist/ui/list.d.ts.map +0 -1
  133. package/dist/ui/list.js +0 -30
  134. package/dist/ui/list.js.map +0 -1
  135. package/dist/ui/static-logs.d.ts +0 -2
  136. package/dist/ui/static-logs.d.ts.map +0 -1
  137. package/dist/ui/static-logs.js +0 -63
  138. package/dist/ui/static-logs.js.map +0 -1
  139. package/dist/ui/task-manager-spinner.d.ts +0 -6
  140. package/dist/ui/task-manager-spinner.d.ts.map +0 -1
  141. package/dist/ui/task-manager-spinner.js +0 -39
  142. package/dist/ui/task-manager-spinner.js.map +0 -1
  143. package/dist/ui/task-name.d.ts +0 -6
  144. package/dist/ui/task-name.d.ts.map +0 -1
  145. package/dist/ui/task-name.js +0 -35
  146. package/dist/ui/task-name.js.map +0 -1
  147. package/dist/ui/task-spinner.d.ts +0 -6
  148. package/dist/ui/task-spinner.d.ts.map +0 -1
  149. package/dist/ui/task-spinner.js +0 -117
  150. package/dist/ui/task-spinner.js.map +0 -1
  151. package/dist/ui/workspace-tree.d.ts +0 -8
  152. package/dist/ui/workspace-tree.d.ts.map +0 -1
  153. package/dist/ui/workspace-tree.js +0 -88
  154. package/dist/ui/workspace-tree.js.map +0 -1
  155. package/dist/utils/index.d.ts +0 -3
  156. package/dist/utils/index.d.ts.map +0 -1
  157. package/dist/utils/index.js +0 -20
  158. package/dist/utils/index.js.map +0 -1
  159. package/dist/utils/streams.d.ts +0 -3
  160. package/dist/utils/streams.d.ts.map +0 -1
  161. package/dist/utils/streams.js +0 -49
  162. package/dist/utils/streams.js.map +0 -1
  163. package/dist/utils/string.d.ts +0 -1
  164. package/dist/utils/string.d.ts.map +0 -1
  165. package/dist/utils/string.js +0 -14
  166. package/dist/utils/string.js.map +0 -1
  167. package/dist/utils/yargs.d.ts +0 -9
  168. package/dist/utils/yargs.d.ts.map +0 -1
  169. package/dist/utils/yargs.js +0 -33
  170. package/dist/utils/yargs.js.map +0 -1
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "GroupTaskSpinner", {
6
- enumerable: true,
7
- get: ()=>GroupTaskSpinner
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _tasks = require("@jujulego/tasks");
11
- const _ink = require("ink");
12
- const _react = require("react");
13
- const _taskSpinner = require("./task-spinner");
14
- const GroupTaskSpinner = ({ group })=>{
15
- const [tasks, setTasks] = (0, _react.useState)([
16
- ...group.tasks
17
- ]);
18
- (0, _react.useLayoutEffect)(()=>{
19
- let dirty = false;
20
- return group.subscribe('task.added', ()=>{
21
- if (!dirty) {
22
- dirty = true;
23
- queueMicrotask(()=>{
24
- setTasks([
25
- ...group.tasks
26
- ]);
27
- dirty = false;
28
- });
29
- }
30
- });
31
- }, [
32
- group
33
- ]);
34
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
35
- children: [
36
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskSpinner.TaskSpinner, {
37
- task: group
38
- }),
39
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Box, {
40
- flexDirection: "column",
41
- marginLeft: 2,
42
- children: tasks.map((task)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_react.Fragment, {
43
- children: task instanceof _tasks.GroupTask ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(GroupTaskSpinner, {
44
- group: task
45
- }) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskSpinner.TaskSpinner, {
46
- task: task
47
- })
48
- }, task.id))
49
- })
50
- ]
51
- });
52
- };
53
-
54
- //# sourceMappingURL=group-task-spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/group-task-spinner.js"],"sourcesContent":["import { GroupTask } from '@jujulego/tasks';\nimport { Box } from 'ink';\nimport { FC, Fragment, useLayoutEffect, useState } from 'react';\n\nimport { TaskSpinner } from './task-spinner';\n\n// Types\nexport interface GroupTaskSpinnerProps {\n group: GroupTask;\n}\n\n// Components\nexport const GroupTaskSpinner: FC<GroupTaskSpinnerProps> = ({ group }) => {\n const [tasks, setTasks] = useState([...group.tasks]);\n\n useLayoutEffect(() => {\n let dirty = false;\n\n return group.subscribe('task.added', () => {\n if (!dirty) {\n dirty = true;\n\n queueMicrotask(() => {\n setTasks([...group.tasks]);\n dirty = false;\n });\n }\n });\n }, [group]);\n\n return (\n <>\n <TaskSpinner task={group} />\n <Box flexDirection=\"column\" marginLeft={2}>\n { tasks.map((task) => (\n <Fragment key={task.id}>\n { (task instanceof GroupTask) ? (\n <GroupTaskSpinner group={task} />\n ) : (\n <TaskSpinner task={task} />\n ) }\n </Fragment>\n )) }\n </Box>\n </>\n );\n};\n"],"names":["GroupTaskSpinner","group","tasks","setTasks","useState","useLayoutEffect","dirty","subscribe","queueMicrotask","TaskSpinner","task","Box","flexDirection","marginLeft","map","Fragment","GroupTask","id"],"mappings":"AAAA;;;;+BAYaA;;aAAAA;;;uBAZa;qBACN;uBACoC;6BAE5B;AAQrB,MAAMA,mBAA8C,CAAC,EAAEC,MAAK,EAAE,GAAK;IACxE,MAAM,CAACC,OAAOC,SAAS,GAAGC,IAAAA,eAAQ,EAAC;WAAIH,MAAMC,KAAK;KAAC;IAEnDG,IAAAA,sBAAe,EAAC,IAAM;QACpB,IAAIC,QAAQ,KAAK;QAEjB,OAAOL,MAAMM,SAAS,CAAC,cAAc,IAAM;YACzC,IAAI,CAACD,OAAO;gBACVA,QAAQ,IAAI;gBAEZE,eAAe,IAAM;oBACnBL,SAAS;2BAAIF,MAAMC,KAAK;qBAAC;oBACzBI,QAAQ,KAAK;gBACf;YACF,CAAC;QACH;IACF,GAAG;QAACL;KAAM;IAEV,qBACE;;0BACE,qBAACQ,wBAAW;gBAACC,MAAMT;;0BACnB,qBAACU,QAAG;gBAACC,eAAc;gBAASC,YAAY;0BACpCX,MAAMY,GAAG,CAAC,CAACJ,qBACX,qBAACK,eAAQ;kCACL,AAACL,gBAAgBM,gBAAS,iBAC1B,qBAAChB;4BAAiBC,OAAOS;2CAEzB,qBAACD,wBAAW;4BAACC,MAAMA;0BACpB;uBALYA,KAAKO,EAAE;;;;AAWhC","file":"group-task-spinner.js"}
@@ -1,8 +0,0 @@
1
- export * from './global-spinner';
2
- export * from './layout';
3
- export * from './list';
4
- export * from './static-logs';
5
- export * from './task-manager-spinner';
6
- export * from './task-name';
7
- export * from './task-spinner';
8
- export * from './workspace-tree';
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC","file":"index.d.ts","sourcesContent":["export * from './global-spinner';\nexport * from './layout';\nexport * from './list';\nexport * from './static-logs';\nexport * from './task-manager-spinner';\nexport * from './task-name';\nexport * from './task-spinner';\nexport * from './workspace-tree';\n"]}
package/dist/ui/index.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- _exportStar(require("./global-spinner"), exports);
6
- _exportStar(require("./layout"), exports);
7
- _exportStar(require("./list"), exports);
8
- _exportStar(require("./static-logs"), exports);
9
- _exportStar(require("./task-manager-spinner"), exports);
10
- _exportStar(require("./task-name"), exports);
11
- _exportStar(require("./task-spinner"), exports);
12
- _exportStar(require("./workspace-tree"), exports);
13
- function _exportStar(from, to) {
14
- Object.keys(from).forEach(function(k) {
15
- if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) Object.defineProperty(to, k, {
16
- enumerable: true,
17
- get: function() {
18
- return from[k];
19
- }
20
- });
21
- });
22
- return from;
23
- }
24
-
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/index.js"],"sourcesContent":["export * from './global-spinner';\nexport * from './layout';\nexport * from './list';\nexport * from './static-logs';\nexport * from './task-manager-spinner';\nexport * from './task-name';\nexport * from './task-spinner';\nexport * from './workspace-tree';\n"],"names":[],"mappings":"AAAA;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA","file":"index.js"}
@@ -1,2 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const Layout: FC;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAM3B,eAAO,MAAM,MAAM,EAAE,EAMpB,CAAC","file":"layout.d.ts","sourcesContent":["import { FC } from 'react';\n\nimport { GlobalSpinner } from './global-spinner';\nimport { StaticLogs } from './static-logs';\n\n// Component\nexport const Layout: FC = ({ children }) => (\n <>\n <StaticLogs />\n <GlobalSpinner />\n { children }\n </>\n);\n"]}
package/dist/ui/layout.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "Layout", {
6
- enumerable: true,
7
- get: ()=>Layout
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _globalSpinner = require("./global-spinner");
11
- const _staticLogs = require("./static-logs");
12
- const Layout = ({ children })=>/*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
13
- children: [
14
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_staticLogs.StaticLogs, {}),
15
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_globalSpinner.GlobalSpinner, {}),
16
- children
17
- ]
18
- });
19
-
20
- //# sourceMappingURL=layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/layout.js"],"sourcesContent":["import { FC } from 'react';\n\nimport { GlobalSpinner } from './global-spinner';\nimport { StaticLogs } from './static-logs';\n\n// Component\nexport const Layout: FC = ({ children }) => (\n <>\n <StaticLogs />\n <GlobalSpinner />\n { children }\n </>\n);\n"],"names":["Layout","children","StaticLogs","GlobalSpinner"],"mappings":"AAAA;;;;+BAMaA;;aAAAA;;;+BAJiB;4BACH;AAGpB,MAAMA,SAAa,CAAC,EAAEC,SAAQ,EAAE,iBACrC;;0BACE,qBAACC,sBAAU;0BACX,qBAACC,4BAAa;YACZF","file":"layout.js"}
package/dist/ui/list.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { ReactElement } from 'react';
2
- export interface ListProps<T extends Record<string, unknown>> {
3
- items: T[];
4
- headers?: boolean;
5
- }
6
- export declare function List<T extends Record<string, unknown>>({ items, headers }: ListProps<T>): ReactElement;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/list.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAKrC,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,YAAY,CAetG","file":"list.d.ts","sourcesContent":["import { Box, Text } from 'ink';\nimport { ReactElement } from 'react';\n\nimport { capitalize } from '../utils';\n\n// Types\nexport interface ListProps<T extends Record<string, unknown>> {\n items: T[];\n headers?: boolean;\n}\n\n// Component\nexport function List<T extends Record<string, unknown>>({ items, headers }: ListProps<T>): ReactElement {\n return (\n <Box>\n { Object.keys(items[0]).map((key) => (\n <Box key={key} flexDirection=\"column\" marginRight={2}>\n { headers && (\n <Text bold>{ capitalize(key) }</Text>\n ) }\n { items.map((item, idx) => (\n <Text key={idx}>{ item[key] }</Text>\n )) }\n </Box>\n )) }\n </Box>\n );\n}\n"]}
package/dist/ui/list.js DELETED
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "List", {
6
- enumerable: true,
7
- get: ()=>List
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _ink = require("ink");
11
- const _utils = require("../utils");
12
- function List({ items , headers }) {
13
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Box, {
14
- children: Object.keys(items[0]).map((key)=>/*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Box, {
15
- flexDirection: "column",
16
- marginRight: 2,
17
- children: [
18
- headers && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Text, {
19
- bold: true,
20
- children: (0, _utils.capitalize)(key)
21
- }),
22
- items.map((item, idx)=>/*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Text, {
23
- children: item[key]
24
- }, idx))
25
- ]
26
- }, key))
27
- });
28
- }
29
-
30
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/list.js"],"sourcesContent":["import { Box, Text } from 'ink';\nimport { ReactElement } from 'react';\n\nimport { capitalize } from '../utils';\n\n// Types\nexport interface ListProps<T extends Record<string, unknown>> {\n items: T[];\n headers?: boolean;\n}\n\n// Component\nexport function List<T extends Record<string, unknown>>({ items, headers }: ListProps<T>): ReactElement {\n return (\n <Box>\n { Object.keys(items[0]).map((key) => (\n <Box key={key} flexDirection=\"column\" marginRight={2}>\n { headers && (\n <Text bold>{ capitalize(key) }</Text>\n ) }\n { items.map((item, idx) => (\n <Text key={idx}>{ item[key] }</Text>\n )) }\n </Box>\n )) }\n </Box>\n );\n}\n"],"names":["List","items","headers","Box","Object","keys","map","key","flexDirection","marginRight","Text","bold","capitalize","item","idx"],"mappings":"AAAA;;;;+BAYgBA;;aAAAA;;;qBAZU;uBAGC;AASpB,SAASA,KAAwC,EAAEC,MAAK,EAAEC,QAAO,EAAgB,EAAgB;IACtG,qBACE,qBAACC,QAAG;kBACAC,OAAOC,IAAI,CAACJ,KAAK,CAAC,EAAE,EAAEK,GAAG,CAAC,CAACC,oBAC3B,sBAACJ,QAAG;gBAAWK,eAAc;gBAASC,aAAa;;oBAC/CP,yBACA,qBAACQ,SAAI;wBAACC,IAAI;kCAAGC,IAAAA,iBAAU,EAACL;;oBAExBN,MAAMK,GAAG,CAAC,CAACO,MAAMC,oBACjB,qBAACJ,SAAI;sCAAaG,IAAI,CAACN,IAAI;2BAAhBO;;eALLP;;AAWlB","file":"list.js"}
@@ -1,2 +0,0 @@
1
- import { FC } from 'react';
2
- export declare const StaticLogs: FC;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/static-logs.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAoB,MAAM,OAAO,CAAC;AAe7C,eAAO,MAAM,UAAU,EAAE,EA+CxB,CAAC","file":"static-logs.d.ts","sourcesContent":["import { useStderr } from 'ink';\nimport { FC, useLayoutEffect, } from 'react';\nimport Transport from 'winston-transport';\n\nimport { consoleFormat, container, Logger } from '../services';\nimport winston from 'winston';\n\n// Constants\nconst MESSAGE = Symbol.for('message');\n\n// Types\ninterface Info extends Record<string, unknown> {\n [MESSAGE]: string;\n}\n\n// Component\nexport const StaticLogs: FC = () => {\n // State\n const { write } = useStderr();\n\n // Effect\n useLayoutEffect(() => {\n const logger = container.get(Logger);\n\n // Remove Console transport\n for (const transport of logger.transports) {\n if (transport instanceof winston.transports.Console) {\n logger.remove(transport);\n }\n }\n\n // Add custom transport\n const transport = new class extends Transport {\n // Constructor\n constructor() {\n super({\n format: consoleFormat\n });\n }\n\n // Methods\n log(info: Info, next: () => void): void {\n setTimeout(() => {\n this.emit('logged', info);\n }, 0);\n\n write(info[MESSAGE] + '\\n');\n\n next();\n }\n };\n\n logger.add(transport);\n\n return () => {\n logger.remove(transport);\n logger.add(new winston.transports.Console({\n format: consoleFormat\n }));\n };\n }, [write]);\n\n return null;\n};\n"]}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "StaticLogs", {
6
- enumerable: true,
7
- get: ()=>StaticLogs
8
- });
9
- const _ink = require("ink");
10
- const _react = require("react");
11
- const _winstonTransport = /*#__PURE__*/ _interopRequireDefault(require("winston-transport"));
12
- const _services = require("../services");
13
- const _winston = /*#__PURE__*/ _interopRequireDefault(require("winston"));
14
- function _interopRequireDefault(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- // Constants
20
- const MESSAGE = Symbol.for('message');
21
- const StaticLogs = ()=>{
22
- // State
23
- const { write } = (0, _ink.useStderr)();
24
- // Effect
25
- (0, _react.useLayoutEffect)(()=>{
26
- const logger = _services.container.get(_services.Logger);
27
- // Remove Console transport
28
- for (const transport of logger.transports){
29
- if (transport instanceof _winston.default.transports.Console) {
30
- logger.remove(transport);
31
- }
32
- }
33
- // Add custom transport
34
- const transport1 = new class extends _winstonTransport.default {
35
- // Constructor
36
- constructor(){
37
- super({
38
- format: _services.consoleFormat
39
- });
40
- }
41
- // Methods
42
- log(info, next) {
43
- setTimeout(()=>{
44
- this.emit('logged', info);
45
- }, 0);
46
- write(info[MESSAGE] + '\n');
47
- next();
48
- }
49
- };
50
- logger.add(transport1);
51
- return ()=>{
52
- logger.remove(transport1);
53
- logger.add(new _winston.default.transports.Console({
54
- format: _services.consoleFormat
55
- }));
56
- };
57
- }, [
58
- write
59
- ]);
60
- return null;
61
- };
62
-
63
- //# sourceMappingURL=static-logs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/static-logs.js"],"sourcesContent":["import { useStderr } from 'ink';\nimport { FC, useLayoutEffect, } from 'react';\nimport Transport from 'winston-transport';\n\nimport { consoleFormat, container, Logger } from '../services';\nimport winston from 'winston';\n\n// Constants\nconst MESSAGE = Symbol.for('message');\n\n// Types\ninterface Info extends Record<string, unknown> {\n [MESSAGE]: string;\n}\n\n// Component\nexport const StaticLogs: FC = () => {\n // State\n const { write } = useStderr();\n\n // Effect\n useLayoutEffect(() => {\n const logger = container.get(Logger);\n\n // Remove Console transport\n for (const transport of logger.transports) {\n if (transport instanceof winston.transports.Console) {\n logger.remove(transport);\n }\n }\n\n // Add custom transport\n const transport = new class extends Transport {\n // Constructor\n constructor() {\n super({\n format: consoleFormat\n });\n }\n\n // Methods\n log(info: Info, next: () => void): void {\n setTimeout(() => {\n this.emit('logged', info);\n }, 0);\n\n write(info[MESSAGE] + '\\n');\n\n next();\n }\n };\n\n logger.add(transport);\n\n return () => {\n logger.remove(transport);\n logger.add(new winston.transports.Console({\n format: consoleFormat\n }));\n };\n }, [write]);\n\n return null;\n};\n"],"names":["StaticLogs","MESSAGE","Symbol","for","write","useStderr","useLayoutEffect","logger","container","get","Logger","transport","transports","winston","Console","remove","Transport","constructor","format","consoleFormat","log","info","next","setTimeout","emit","add"],"mappings":"AAAA;;;;+BAgBaA;;aAAAA;;qBAhBa;uBACW;uEACf;0BAE2B;8DAC7B;;;;;;AAEpB,YAAY;AACZ,MAAMC,UAAUC,OAAOC,GAAG,CAAC;AAQpB,MAAMH,aAAiB,IAAM;IAClC,QAAQ;IACR,MAAM,EAAEI,MAAK,EAAE,GAAGC,IAAAA,cAAS;IAE3B,SAAS;IACTC,IAAAA,sBAAe,EAAC,IAAM;QACpB,MAAMC,SAASC,mBAAS,CAACC,GAAG,CAACC,gBAAM;QAEnC,2BAA2B;QAC3B,KAAK,MAAMC,aAAaJ,OAAOK,UAAU,CAAE;YACzC,IAAID,qBAAqBE,gBAAO,CAACD,UAAU,CAACE,OAAO,EAAE;gBACnDP,OAAOQ,MAAM,CAACJ;YAChB,CAAC;QACH;QAEA,uBAAuB;QACvB,MAAMA,aAAY,IAAI,cAAcK,yBAAS;YAC3C,cAAc;YACdC,aAAc;gBACZ,KAAK,CAAC;oBACJC,QAAQC,uBAAa;gBACvB;YACF;YAEA,UAAU;YACVC,IAAIC,IAAU,EAAEC,IAAgB,EAAQ;gBACtCC,WAAW,IAAM;oBACf,IAAI,CAACC,IAAI,CAAC,UAAUH;gBACtB,GAAG;gBAEHjB,MAAMiB,IAAI,CAACpB,QAAQ,GAAG;gBAEtBqB;YACF;QACF;QAEAf,OAAOkB,GAAG,CAACd;QAEX,OAAO,IAAM;YACXJ,OAAOQ,MAAM,CAACJ;YACdJ,OAAOkB,GAAG,CAAC,IAAIZ,gBAAO,CAACD,UAAU,CAACE,OAAO,CAAC;gBACxCI,QAAQC,uBAAa;YACvB;QACF;IACF,GAAG;QAACf;KAAM;IAEV,OAAO,IAAI;AACb","file":"static-logs.js"}
@@ -1,6 +0,0 @@
1
- import { TaskManager } from '@jujulego/tasks';
2
- import { FC } from 'react';
3
- export interface TasksSpinnerProps {
4
- manager: TaskManager;
5
- }
6
- export declare const TaskManagerSpinner: FC<TasksSpinnerProps>;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/task-manager-spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,EAAE,EAA6B,MAAM,OAAO,CAAC;AAMtD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,WAAW,CAAC;CACtB;AAGD,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,iBAAiB,CA6BpD,CAAC","file":"task-manager-spinner.d.ts","sourcesContent":["import { GroupTask, TaskManager } from '@jujulego/tasks';\nimport { FC, useLayoutEffect, useState } from 'react';\n\nimport { TaskSpinner } from './task-spinner';\nimport { GroupTaskSpinner } from './group-task-spinner';\n\n// Types\nexport interface TasksSpinnerProps {\n manager: TaskManager;\n}\n\n// Components\nexport const TaskManagerSpinner: FC<TasksSpinnerProps> = ({ manager }) => {\n const [tasks, setTasks] = useState(manager.tasks.filter((tsk) => !tsk.context.groupTask));\n\n useLayoutEffect(() => {\n let dirty = false;\n\n return manager.subscribe('added', () => {\n if (!dirty) {\n dirty = true;\n\n queueMicrotask(() => {\n setTasks(manager.tasks.filter((tsk) => !tsk.context.groupTask));\n dirty = false;\n });\n }\n });\n }, [manager]);\n\n return (\n <>\n { tasks.map((task) =>\n (task instanceof GroupTask) ? (\n <GroupTaskSpinner key={task.id} group={task} />\n ) : (\n <TaskSpinner key={task.id} task={task} />\n )\n ) }\n </>\n );\n};\n"]}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TaskManagerSpinner", {
6
- enumerable: true,
7
- get: ()=>TaskManagerSpinner
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _tasks = require("@jujulego/tasks");
11
- const _react = require("react");
12
- const _taskSpinner = require("./task-spinner");
13
- const _groupTaskSpinner = require("./group-task-spinner");
14
- const TaskManagerSpinner = ({ manager })=>{
15
- const [tasks, setTasks] = (0, _react.useState)(manager.tasks.filter((tsk)=>!tsk.context.groupTask));
16
- (0, _react.useLayoutEffect)(()=>{
17
- let dirty = false;
18
- return manager.subscribe('added', ()=>{
19
- if (!dirty) {
20
- dirty = true;
21
- queueMicrotask(()=>{
22
- setTasks(manager.tasks.filter((tsk)=>!tsk.context.groupTask));
23
- dirty = false;
24
- });
25
- }
26
- });
27
- }, [
28
- manager
29
- ]);
30
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
31
- children: tasks.map((task)=>task instanceof _tasks.GroupTask ? /*#__PURE__*/ (0, _jsxRuntime.jsx)(_groupTaskSpinner.GroupTaskSpinner, {
32
- group: task
33
- }, task.id) : /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskSpinner.TaskSpinner, {
34
- task: task
35
- }, task.id))
36
- });
37
- };
38
-
39
- //# sourceMappingURL=task-manager-spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/task-manager-spinner.js"],"sourcesContent":["import { GroupTask, TaskManager } from '@jujulego/tasks';\nimport { FC, useLayoutEffect, useState } from 'react';\n\nimport { TaskSpinner } from './task-spinner';\nimport { GroupTaskSpinner } from './group-task-spinner';\n\n// Types\nexport interface TasksSpinnerProps {\n manager: TaskManager;\n}\n\n// Components\nexport const TaskManagerSpinner: FC<TasksSpinnerProps> = ({ manager }) => {\n const [tasks, setTasks] = useState(manager.tasks.filter((tsk) => !tsk.context.groupTask));\n\n useLayoutEffect(() => {\n let dirty = false;\n\n return manager.subscribe('added', () => {\n if (!dirty) {\n dirty = true;\n\n queueMicrotask(() => {\n setTasks(manager.tasks.filter((tsk) => !tsk.context.groupTask));\n dirty = false;\n });\n }\n });\n }, [manager]);\n\n return (\n <>\n { tasks.map((task) =>\n (task instanceof GroupTask) ? (\n <GroupTaskSpinner key={task.id} group={task} />\n ) : (\n <TaskSpinner key={task.id} task={task} />\n )\n ) }\n </>\n );\n};\n"],"names":["TaskManagerSpinner","manager","tasks","setTasks","useState","filter","tsk","context","groupTask","useLayoutEffect","dirty","subscribe","queueMicrotask","map","task","GroupTask","GroupTaskSpinner","group","id","TaskSpinner"],"mappings":"AAAA;;;;+BAYaA;;aAAAA;;;uBAZ0B;uBACO;6BAElB;kCACK;AAQ1B,MAAMA,qBAA4C,CAAC,EAAEC,QAAO,EAAE,GAAK;IACxE,MAAM,CAACC,OAAOC,SAAS,GAAGC,IAAAA,eAAQ,EAACH,QAAQC,KAAK,CAACG,MAAM,CAAC,CAACC,MAAQ,CAACA,IAAIC,OAAO,CAACC,SAAS;IAEvFC,IAAAA,sBAAe,EAAC,IAAM;QACpB,IAAIC,QAAQ,KAAK;QAEjB,OAAOT,QAAQU,SAAS,CAAC,SAAS,IAAM;YACtC,IAAI,CAACD,OAAO;gBACVA,QAAQ,IAAI;gBAEZE,eAAe,IAAM;oBACnBT,SAASF,QAAQC,KAAK,CAACG,MAAM,CAAC,CAACC,MAAQ,CAACA,IAAIC,OAAO,CAACC,SAAS;oBAC7DE,QAAQ,KAAK;gBACf;YACF,CAAC;QACH;IACF,GAAG;QAACT;KAAQ;IAEZ,qBACE;kBACIC,MAAMW,GAAG,CAAC,CAACC,OACX,AAACA,gBAAgBC,gBAAS,iBACxB,qBAACC,kCAAgB;gBAAeC,OAAOH;eAAhBA,KAAKI,EAAE,kBAE9B,qBAACC,wBAAW;gBAAeL,MAAMA;eAAfA,KAAKI,EAAE,CAC1B;;AAIT","file":"task-manager-spinner.js"}
@@ -1,6 +0,0 @@
1
- import { Task } from '@jujulego/tasks';
2
- import { FC } from 'react';
3
- export interface TaskNameProps {
4
- task: Task;
5
- }
6
- export declare const TaskName: FC<TaskNameProps>;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/task-name.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAK3B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,CAAC;CACZ;AAQD,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAUtC,CAAC","file":"task-name.d.ts","sourcesContent":["import { Task, TaskContext } from '@jujulego/tasks';\nimport { Text } from 'ink';\nimport { FC } from 'react';\n\nimport { WorkspaceContext } from '../project';\n\n// Types\nexport interface TaskNameProps {\n task: Task;\n}\n\n// Utils\nfunction isWorkspaceCtx(ctx: Readonly<TaskContext>): ctx is Readonly<WorkspaceContext> {\n return 'workspace' in ctx;\n}\n\n// Components\nexport const TaskName: FC<TaskNameProps> = ({ task }) => {\n if (isWorkspaceCtx(task.context)) {\n return (\n <Text>\n Running <Text bold>{ task.context.script }</Text> in { task.context.workspace.name }\n </Text>\n );\n } else {\n return <Text>{ task.name }</Text>;\n }\n};\n"]}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TaskName", {
6
- enumerable: true,
7
- get: ()=>TaskName
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _ink = require("ink");
11
- // Utils
12
- function isWorkspaceCtx(ctx) {
13
- return 'workspace' in ctx;
14
- }
15
- const TaskName = ({ task })=>{
16
- if (isWorkspaceCtx(task.context)) {
17
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
18
- children: [
19
- "Running ",
20
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Text, {
21
- bold: true,
22
- children: task.context.script
23
- }),
24
- " in ",
25
- task.context.workspace.name
26
- ]
27
- });
28
- } else {
29
- return /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Text, {
30
- children: task.name
31
- });
32
- }
33
- };
34
-
35
- //# sourceMappingURL=task-name.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/task-name.js"],"sourcesContent":["import { Task, TaskContext } from '@jujulego/tasks';\nimport { Text } from 'ink';\nimport { FC } from 'react';\n\nimport { WorkspaceContext } from '../project';\n\n// Types\nexport interface TaskNameProps {\n task: Task;\n}\n\n// Utils\nfunction isWorkspaceCtx(ctx: Readonly<TaskContext>): ctx is Readonly<WorkspaceContext> {\n return 'workspace' in ctx;\n}\n\n// Components\nexport const TaskName: FC<TaskNameProps> = ({ task }) => {\n if (isWorkspaceCtx(task.context)) {\n return (\n <Text>\n Running <Text bold>{ task.context.script }</Text> in { task.context.workspace.name }\n </Text>\n );\n } else {\n return <Text>{ task.name }</Text>;\n }\n};\n"],"names":["TaskName","isWorkspaceCtx","ctx","task","context","Text","bold","script","workspace","name"],"mappings":"AAAA;;;;+BAiBaA;;aAAAA;;;qBAhBQ;AAUrB,QAAQ;AACR,SAASC,eAAeC,GAA0B,EAAqC;IACrF,OAAO,eAAeA;AACxB;AAGO,MAAMF,WAA8B,CAAC,EAAEG,KAAI,EAAE,GAAK;IACvD,IAAIF,eAAeE,KAAKC,OAAO,GAAG;QAChC,qBACE,sBAACC,SAAI;;gBAAC;8BACI,qBAACA,SAAI;oBAACC,IAAI;8BAAGH,KAAKC,OAAO,CAACG,MAAM;;gBAAS;gBAAMJ,KAAKC,OAAO,CAACI,SAAS,CAACC,IAAI;;;IAGxF,OAAO;QACL,qBAAO,qBAACJ,SAAI;sBAAGF,KAAKM,IAAI;;IAC1B,CAAC;AACH","file":"task-name.js"}
@@ -1,6 +0,0 @@
1
- import { Task } from '@jujulego/tasks';
2
- import { FC } from 'react';
3
- export interface TaskSpinnerProps {
4
- task: Task;
5
- }
6
- export declare const TaskSpinner: FC<TaskSpinnerProps>;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/task-spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,OAAO,EAAE,EAAE,EAA6B,MAAM,OAAO,CAAC;AAKtD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ;AAGD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAmD5C,CAAC","file":"task-spinner.d.ts","sourcesContent":["import { Task } from '@jujulego/tasks';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport symbols from 'log-symbols';\nimport ms from 'pretty-ms';\nimport { FC, useLayoutEffect, useState } from 'react';\n\nimport { TaskName } from './task-name';\n\n// Types\nexport interface TaskSpinnerProps {\n task: Task;\n}\n\n// Components\nexport const TaskSpinner: FC<TaskSpinnerProps> = ({ task }) => {\n // State\n const [status, setStatus] = useState(task.status);\n const [time, setTime] = useState(0);\n\n // Effects\n useLayoutEffect(() => {\n return task.subscribe('status', (event) => {\n setStatus(event.status);\n });\n }, [task]);\n\n useLayoutEffect(() => {\n return task.subscribe('completed', ({ duration }) => {\n setTime(duration);\n });\n }, [task]);\n\n // Render\n switch (status) {\n case 'blocked':\n case 'ready':\n return (\n <Text color=\"grey\">\n <Spinner type=\"line2\" />{' '}<TaskName task={task} />\n </Text>\n );\n\n case 'running':\n return (\n <Text>\n <Spinner />{' '}<TaskName task={task} />\n </Text>\n );\n\n case 'done':\n return (\n <Text>\n <Text color=\"green\">{ symbols.success }{' '}<TaskName task={task} /></Text>\n <Text color=\"magenta\">{' '}(took { ms(time) })</Text>\n </Text>\n );\n\n case 'failed':\n return (\n <Text>\n <Text color=\"red\">{ symbols.error }{' '}<TaskName task={task} /></Text>\n <Text color=\"magenta\">{' '}(took { ms(time) })</Text>\n </Text>\n );\n }\n};\n"]}
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "TaskSpinner", {
6
- enumerable: true,
7
- get: ()=>TaskSpinner
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _ink = require("ink");
11
- const _inkSpinner = /*#__PURE__*/ _interopRequireDefault(require("ink-spinner"));
12
- const _logSymbols = /*#__PURE__*/ _interopRequireDefault(require("log-symbols"));
13
- const _prettyMs = /*#__PURE__*/ _interopRequireDefault(require("pretty-ms"));
14
- const _react = require("react");
15
- const _taskName = require("./task-name");
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- const TaskSpinner = ({ task })=>{
22
- // State
23
- const [status, setStatus] = (0, _react.useState)(task.status);
24
- const [time, setTime] = (0, _react.useState)(0);
25
- // Effects
26
- (0, _react.useLayoutEffect)(()=>{
27
- return task.subscribe('status', (event)=>{
28
- setStatus(event.status);
29
- });
30
- }, [
31
- task
32
- ]);
33
- (0, _react.useLayoutEffect)(()=>{
34
- return task.subscribe('completed', ({ duration })=>{
35
- setTime(duration);
36
- });
37
- }, [
38
- task
39
- ]);
40
- // Render
41
- switch(status){
42
- case 'blocked':
43
- case 'ready':
44
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
45
- color: "grey",
46
- children: [
47
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_inkSpinner.default, {
48
- type: "line2"
49
- }),
50
- ' ',
51
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskName.TaskName, {
52
- task: task
53
- })
54
- ]
55
- });
56
- case 'running':
57
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
58
- children: [
59
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_inkSpinner.default, {}),
60
- ' ',
61
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskName.TaskName, {
62
- task: task
63
- })
64
- ]
65
- });
66
- case 'done':
67
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
68
- children: [
69
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
70
- color: "green",
71
- children: [
72
- _logSymbols.default.success,
73
- ' ',
74
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskName.TaskName, {
75
- task: task
76
- })
77
- ]
78
- }),
79
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
80
- color: "magenta",
81
- children: [
82
- ' ',
83
- "(took ",
84
- (0, _prettyMs.default)(time),
85
- ")"
86
- ]
87
- })
88
- ]
89
- });
90
- case 'failed':
91
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
92
- children: [
93
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
94
- color: "red",
95
- children: [
96
- _logSymbols.default.error,
97
- ' ',
98
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_taskName.TaskName, {
99
- task: task
100
- })
101
- ]
102
- }),
103
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
104
- color: "magenta",
105
- children: [
106
- ' ',
107
- "(took ",
108
- (0, _prettyMs.default)(time),
109
- ")"
110
- ]
111
- })
112
- ]
113
- });
114
- }
115
- };
116
-
117
- //# sourceMappingURL=task-spinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["ui/task-spinner.js"],"sourcesContent":["import { Task } from '@jujulego/tasks';\nimport { Text } from 'ink';\nimport Spinner from 'ink-spinner';\nimport symbols from 'log-symbols';\nimport ms from 'pretty-ms';\nimport { FC, useLayoutEffect, useState } from 'react';\n\nimport { TaskName } from './task-name';\n\n// Types\nexport interface TaskSpinnerProps {\n task: Task;\n}\n\n// Components\nexport const TaskSpinner: FC<TaskSpinnerProps> = ({ task }) => {\n // State\n const [status, setStatus] = useState(task.status);\n const [time, setTime] = useState(0);\n\n // Effects\n useLayoutEffect(() => {\n return task.subscribe('status', (event) => {\n setStatus(event.status);\n });\n }, [task]);\n\n useLayoutEffect(() => {\n return task.subscribe('completed', ({ duration }) => {\n setTime(duration);\n });\n }, [task]);\n\n // Render\n switch (status) {\n case 'blocked':\n case 'ready':\n return (\n <Text color=\"grey\">\n <Spinner type=\"line2\" />{' '}<TaskName task={task} />\n </Text>\n );\n\n case 'running':\n return (\n <Text>\n <Spinner />{' '}<TaskName task={task} />\n </Text>\n );\n\n case 'done':\n return (\n <Text>\n <Text color=\"green\">{ symbols.success }{' '}<TaskName task={task} /></Text>\n <Text color=\"magenta\">{' '}(took { ms(time) })</Text>\n </Text>\n );\n\n case 'failed':\n return (\n <Text>\n <Text color=\"red\">{ symbols.error }{' '}<TaskName task={task} /></Text>\n <Text color=\"magenta\">{' '}(took { ms(time) })</Text>\n </Text>\n );\n }\n};\n"],"names":["TaskSpinner","task","status","setStatus","useState","time","setTime","useLayoutEffect","subscribe","event","duration","Text","color","Spinner","type","TaskName","symbols","success","ms","error"],"mappings":"AAAA;;;;+BAeaA;;aAAAA;;;qBAdQ;iEACD;iEACA;+DACL;uBAC+B;0BAErB;;;;;;AAQlB,MAAMA,cAAoC,CAAC,EAAEC,KAAI,EAAE,GAAK;IAC7D,QAAQ;IACR,MAAM,CAACC,QAAQC,UAAU,GAAGC,IAAAA,eAAQ,EAACH,KAAKC,MAAM;IAChD,MAAM,CAACG,MAAMC,QAAQ,GAAGF,IAAAA,eAAQ,EAAC;IAEjC,UAAU;IACVG,IAAAA,sBAAe,EAAC,IAAM;QACpB,OAAON,KAAKO,SAAS,CAAC,UAAU,CAACC,QAAU;YACzCN,UAAUM,MAAMP,MAAM;QACxB;IACF,GAAG;QAACD;KAAK;IAETM,IAAAA,sBAAe,EAAC,IAAM;QACpB,OAAON,KAAKO,SAAS,CAAC,aAAa,CAAC,EAAEE,SAAQ,EAAE,GAAK;YACnDJ,QAAQI;QACV;IACF,GAAG;QAACT;KAAK;IAET,SAAS;IACT,OAAQC;QACN,KAAK;QACL,KAAK;YACH,qBACE,sBAACS,SAAI;gBAACC,OAAM;;kCACV,qBAACC,mBAAO;wBAACC,MAAK;;oBAAW;kCAAI,qBAACC,kBAAQ;wBAACd,MAAMA;;;;QAInD,KAAK;YACH,qBACE,sBAACU,SAAI;;kCACH,qBAACE,mBAAO;oBAAI;kCAAI,qBAACE,kBAAQ;wBAACd,MAAMA;;;;QAItC,KAAK;YACH,qBACE,sBAACU,SAAI;;kCACH,sBAACA,SAAI;wBAACC,OAAM;;4BAAUI,mBAAO,CAACC,OAAO;4BAAG;0CAAI,qBAACF,kBAAQ;gCAACd,MAAMA;;;;kCAC5D,sBAACU,SAAI;wBAACC,OAAM;;4BAAW;4BAAI;4BAAQM,IAAAA,iBAAE,EAACb;4BAAO;;;;;QAInD,KAAK;YACH,qBACE,sBAACM,SAAI;;kCACH,sBAACA,SAAI;wBAACC,OAAM;;4BAAQI,mBAAO,CAACG,KAAK;4BAAG;0CAAI,qBAACJ,kBAAQ;gCAACd,MAAMA;;;;kCACxD,sBAACU,SAAI;wBAACC,OAAM;;4BAAW;4BAAI;4BAAQM,IAAAA,iBAAE,EAACb;4BAAO;;;;;IAGrD;AACF","file":"task-spinner.js"}
@@ -1,8 +0,0 @@
1
- import { FC, ReactElement } from 'react';
2
- import { Workspace } from '../project';
3
- export interface WorkspaceTreeProps {
4
- workspace: Workspace;
5
- dev?: boolean;
6
- level?: ReactElement;
7
- }
8
- export declare const WorkspaceTree: FC<WorkspaceTreeProps>;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ui/workspace-tree.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAuB,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAMD,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAyChD,CAAC","file":"workspace-tree.d.ts","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"]}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "WorkspaceTree", {
6
- enumerable: true,
7
- get: ()=>WorkspaceTree
8
- });
9
- const _jsxRuntime = require("react/jsx-runtime");
10
- const _ink = require("ink");
11
- const _react = require("react");
12
- // Utils
13
- const style = (dev)=>({
14
- color: dev ? 'blue' : ''
15
- });
16
- const WorkspaceTree = (props)=>{
17
- const { workspace: wks , dev =false , level ='' } = props;
18
- // State
19
- const [deps, setDeps] = (0, _react.useState)([]);
20
- // Effects
21
- (0, _react.useEffect)(()=>void (async ()=>{
22
- const deps = [];
23
- for await (const dep of wks.dependencies()){
24
- deps.push([
25
- dep,
26
- null
27
- ]);
28
- }
29
- for await (const dep1 of wks.devDependencies()){
30
- deps.push([
31
- dep1,
32
- true
33
- ]);
34
- }
35
- setDeps(deps);
36
- })(), [
37
- wks
38
- ]);
39
- // Render
40
- return /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
41
- children: [
42
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Text, {
43
- ...style(dev),
44
- children: wks.name
45
- }),
46
- wks.version && /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
47
- color: "grey",
48
- children: [
49
- "@",
50
- wks.version
51
- ]
52
- }),
53
- deps.length > 0 && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Newline, {}),
54
- deps.map(([dep, isDev], idx)=>/*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
55
- children: [
56
- level,
57
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
58
- ...style(dev),
59
- children: [
60
- idx === deps.length - 1 ? '└' : '├',
61
- "─",
62
- ' '
63
- ]
64
- }),
65
- /*#__PURE__*/ (0, _jsxRuntime.jsx)(WorkspaceTree, {
66
- workspace: dep,
67
- dev: isDev ?? dev,
68
- level: /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
69
- children: [
70
- level,
71
- /*#__PURE__*/ (0, _jsxRuntime.jsxs)(_ink.Text, {
72
- ...style(dev),
73
- children: [
74
- idx === deps.length - 1 ? ' ' : '│',
75
- ' '
76
- ]
77
- })
78
- ]
79
- })
80
- }),
81
- idx < deps.length - 1 && /*#__PURE__*/ (0, _jsxRuntime.jsx)(_ink.Newline, {})
82
- ]
83
- }, dep.name))
84
- ]
85
- });
86
- };
87
-
88
- //# sourceMappingURL=workspace-tree.js.map