testeranto 0.74.0 → 0.79.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 (136) hide show
  1. package/README.md +25 -24
  2. package/devBot.dockerfile +12 -0
  3. package/dist/common/Node.js +1 -0
  4. package/dist/common/PM/index.js +0 -64
  5. package/dist/common/PM/main.js +278 -7
  6. package/dist/common/PM/node.js +4 -0
  7. package/dist/common/PM/web.js +3 -0
  8. package/dist/common/Project.js +6 -2
  9. package/dist/common/Puppeteer.js +12 -17
  10. package/dist/common/Reporter.js +1 -8
  11. package/dist/common/SubPackages/react-dom/component/web.js +5 -25
  12. package/dist/common/SubPackages/react-dom/jsx/web.js +80 -55
  13. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -86
  14. package/dist/common/SubPackages/react-test-renderer/component/interface.js +68 -0
  15. package/dist/common/SubPackages/react-test-renderer/component/node.js +2 -2
  16. package/dist/common/SubPackages/react-test-renderer/component/web.js +2 -2
  17. package/dist/common/TaskManBackEnd.js +156 -0
  18. package/dist/common/Types.js +0 -2
  19. package/dist/common/esbuildConfigs/index.js +1 -0
  20. package/dist/common/esbuildConfigs/inputFilesPlugin.js +49 -0
  21. package/dist/common/esbuildConfigs/node.js +3 -1
  22. package/dist/common/esbuildConfigs/web.js +3 -1
  23. package/dist/common/lib/abstractBase.js +222 -17
  24. package/dist/common/lib/basebuilder.js +4 -38
  25. package/dist/common/lib/classBuilder.js +1 -3
  26. package/dist/common/lib/core.js +3 -5
  27. package/dist/common/mongooseSchemas.js +56 -0
  28. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  29. package/dist/common/utils.js +16 -0
  30. package/dist/module/ExampleTab.js +112 -0
  31. package/dist/module/Node.js +1 -0
  32. package/dist/module/PM/index.js +0 -64
  33. package/dist/module/PM/main.js +278 -7
  34. package/dist/module/PM/node.js +4 -0
  35. package/dist/module/PM/web.js +3 -0
  36. package/dist/module/Project.js +6 -2
  37. package/dist/module/Puppeteer.js +12 -17
  38. package/dist/module/Reporter.js +1 -8
  39. package/dist/module/SubPackages/react-dom/component/web.js +5 -25
  40. package/dist/module/SubPackages/react-dom/jsx/web.js +80 -55
  41. package/dist/module/SubPackages/react-test-renderer/component/index.js +1 -59
  42. package/dist/module/SubPackages/react-test-renderer/component/interface.js +39 -0
  43. package/dist/module/SubPackages/react-test-renderer/component/node.js +1 -1
  44. package/dist/module/SubPackages/react-test-renderer/component/web.js +1 -1
  45. package/dist/module/TaskManBackEnd.js +151 -0
  46. package/dist/module/TaskManFrontEnd.js +600 -0
  47. package/dist/module/Types.js +0 -2
  48. package/dist/module/esbuildConfigs/index.js +1 -0
  49. package/dist/module/esbuildConfigs/inputFilesPlugin.js +44 -0
  50. package/dist/module/esbuildConfigs/node.js +3 -1
  51. package/dist/module/esbuildConfigs/web.js +3 -1
  52. package/dist/module/lib/abstractBase.js +222 -17
  53. package/dist/module/lib/basebuilder.js +4 -38
  54. package/dist/module/lib/classBuilder.js +1 -3
  55. package/dist/module/lib/core.js +3 -5
  56. package/dist/module/mongooseSchemas.js +50 -0
  57. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  58. package/dist/module/utils.js +9 -0
  59. package/dist/prebuild/Report.js +117 -36
  60. package/dist/prebuild/TaskManBackEnd.mjs +185 -0
  61. package/dist/prebuild/TaskManFrontEnd.css +12301 -0
  62. package/dist/prebuild/TaskManFrontEnd.js +81737 -0
  63. package/dist/types/Node.d.ts +1 -1
  64. package/dist/types/PM/index.d.ts +2 -1
  65. package/dist/types/PM/main.d.ts +8 -3
  66. package/dist/types/PM/node.d.ts +2 -0
  67. package/dist/types/PM/web.d.ts +1 -0
  68. package/dist/types/SubPackages/puppeteer.d.ts +1 -1
  69. package/dist/types/SubPackages/react/component/node.d.ts +1 -1
  70. package/dist/types/SubPackages/react/component/web.d.ts +1 -1
  71. package/dist/types/SubPackages/react/jsx/node.d.ts +2 -2
  72. package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
  73. package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
  74. package/dist/types/SubPackages/react-dom/component/web.d.ts +8 -2
  75. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +2 -2
  76. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +2 -2
  77. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +2 -2
  78. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +0 -7
  79. package/dist/types/SubPackages/react-test-renderer/component/interface.d.ts +9 -0
  80. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -2
  81. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -2
  82. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
  83. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
  84. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -2
  85. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +1 -2
  86. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -2
  87. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -2
  88. package/dist/types/TaskManBackEnd.d.ts +1 -0
  89. package/dist/types/Types.d.ts +19 -19
  90. package/dist/types/Web.d.ts +1 -1
  91. package/dist/types/esbuildConfigs/inputFilesPlugin.d.ts +5 -0
  92. package/dist/types/lib/abstractBase.d.ts +8 -8
  93. package/dist/types/lib/basebuilder.d.ts +1 -1
  94. package/dist/types/lib/classBuilder.d.ts +1 -1
  95. package/dist/types/lib/core.d.ts +1 -1
  96. package/dist/types/lib/index.d.ts +5 -5
  97. package/dist/types/lib/types.d.ts +15 -13
  98. package/dist/types/mongooseSchemas.d.ts +124 -0
  99. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  100. package/dist/types/utils.d.ts +2 -0
  101. package/docker-compose-dev.yml +9 -0
  102. package/docker-compose-prod.yml +18 -0
  103. package/package.json +20 -7
  104. package/src/ExampleTab.tsx +219 -0
  105. package/src/Node.ts +31 -2
  106. package/src/PM/index.ts +6 -83
  107. package/src/PM/main.ts +389 -11
  108. package/src/PM/node.ts +6 -0
  109. package/src/PM/web.ts +4 -0
  110. package/src/Project.ts +10 -2
  111. package/src/Puppeteer.ts +16 -17
  112. package/src/Report.tsx +17 -40
  113. package/src/Reporter.ts +1 -9
  114. package/src/SubPackages/react-dom/component/web.ts +10 -30
  115. package/src/SubPackages/react-dom/jsx/web.ts +111 -74
  116. package/src/SubPackages/react-test-renderer/component/index.ts +0 -66
  117. package/src/SubPackages/react-test-renderer/component/interface.ts +48 -0
  118. package/src/SubPackages/react-test-renderer/component/node.ts +2 -1
  119. package/src/SubPackages/react-test-renderer/component/web.ts +2 -1
  120. package/src/TaskManBackEnd.ts +200 -0
  121. package/src/TaskManFrontEnd.tsx +1222 -0
  122. package/src/Types.ts +136 -28
  123. package/src/Web.ts +32 -2
  124. package/src/esbuildConfigs/index.ts +1 -0
  125. package/src/esbuildConfigs/inputFilesPlugin.ts +65 -0
  126. package/src/esbuildConfigs/node.ts +3 -1
  127. package/src/esbuildConfigs/web.ts +4 -0
  128. package/src/lib/abstractBase.ts +337 -34
  129. package/src/lib/basebuilder.ts +17 -52
  130. package/src/lib/classBuilder.ts +14 -2
  131. package/src/lib/core.ts +18 -7
  132. package/src/lib/index.ts +115 -7
  133. package/src/lib/types.ts +143 -35
  134. package/src/mongooseSchemas.ts +105 -0
  135. package/src/utils.ts +15 -0
  136. package/yarn-error.log +3144 -0
@@ -0,0 +1,600 @@
1
+ import { ReactFlow } from '@xyflow/react';
2
+ import { Button, ButtonGroup, Container, Form, Navbar, NavDropdown, Table, ToggleButton } from "react-bootstrap";
3
+ import React, { useEffect, useState } from "react";
4
+ import ReactDom from "react-dom/client";
5
+ import Col from 'react-bootstrap/Col';
6
+ import Nav from 'react-bootstrap/Nav';
7
+ import Row from 'react-bootstrap/Row';
8
+ import Tab from 'react-bootstrap/Tab';
9
+ import Tabs from 'react-bootstrap/Tabs';
10
+ import { BrowserRouter as Router, Route, NavLink, Routes } from 'react-router-dom';
11
+ import { UncontrolledBoard } from '@caldwell619/react-kanban';
12
+ import '@caldwell619/react-kanban/dist/styles.css';
13
+ import { Gantt } from 'gantt-task-react';
14
+ import "gantt-task-react/dist/index.css";
15
+ import 'bootstrap/dist/css/bootstrap.min.css';
16
+ import '@xyflow/react/dist/style.css';
17
+ import { featuresSchema, ganttSchema, kanbanSchema, userSchema } from "./mongooseSchemas";
18
+ const InputElementString = ({ tree, name }) => {
19
+ console.log("mark string", tree);
20
+ // return <Form.Control type="email" placeholder={name} />
21
+ return React.createElement(Form.Group, { className: "mb-3", controlId: name },
22
+ React.createElement(Form.Label, null, name),
23
+ React.createElement(Form.Control, { placeholder: name }));
24
+ };
25
+ const InputElementArray = ({ tree, name }) => {
26
+ console.log("mark5", tree);
27
+ return React.createElement(Form.Control, { type: "email", placeholder: "Enter email" });
28
+ };
29
+ const InputElementObject = ({ tree, name }) => {
30
+ // const x = schema.path(path);
31
+ console.log("mark4", tree, tree.properties);
32
+ return React.createElement("div", null, ...Object.keys(tree.properties).map((name) => {
33
+ console.log("mark6", name, tree.properties[name].type);
34
+ if (tree.properties[name].type === "object") {
35
+ return React.createElement(InputElementObject, { tree: tree.properties[name], name: name });
36
+ }
37
+ if (tree.properties[name].type === "string") {
38
+ return React.createElement(InputElementString, { tree: tree.properties[name], name: name });
39
+ }
40
+ if (Array.isArray(tree.properties[name].type)) {
41
+ return React.createElement(InputElementArray, { tree: tree.properties[name], name: name });
42
+ }
43
+ }));
44
+ // // if (tree.type === "string") {
45
+ // // return <InputElementString tree={tree.properties[path]} path={path}></InputElementString >
46
+ // // }
47
+ // return <div>IDK</div>
48
+ // return <Form.Group>
49
+ // {/* {
50
+ // schema.get(path)
51
+ // } */}
52
+ // </Form.Group>
53
+ };
54
+ const InputForm = ({ schema, path }) => {
55
+ return React.createElement(Form.Group, null,
56
+ React.createElement(InputElementObject, { tree: schema.toJSONSchema() }));
57
+ };
58
+ const Crud2 = ({ collection, collectionName, schema }) => {
59
+ return React.createElement("div", null,
60
+ React.createElement(Table, { striped: true, bordered: true, hover: true },
61
+ React.createElement("thead", null,
62
+ React.createElement("tr", null,
63
+ React.createElement("th", null, "id"),
64
+ React.createElement("th", null))),
65
+ React.createElement("tbody", null,
66
+ React.createElement("tr", null,
67
+ React.createElement("td", null, "add new record"),
68
+ React.createElement("td", null,
69
+ React.createElement(Form, null,
70
+ React.createElement(InputForm, { schema: schema }),
71
+ React.createElement(Button, { variant: "primary", type: "submit" }, "Submit")))),
72
+ collection.map((doc) => {
73
+ return React.createElement("tr", null,
74
+ React.createElement("td", null, doc._id),
75
+ React.createElement("td", null, JSON.stringify(doc, null, 2)));
76
+ }))));
77
+ };
78
+ const Features = ({ features, tests, results, adminMode }) => {
79
+ if (!adminMode)
80
+ return React.createElement(Tab.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" },
81
+ React.createElement(Row, null,
82
+ React.createElement(Col, { sm: 4 },
83
+ React.createElement(Nav, { variant: "pills", className: "flex-column" }, (features).map((feature, ndx) => React.createElement(Nav.Item, { key: ndx },
84
+ React.createElement(Nav.Link, { eventKey: `feature/${feature._id}` }, feature.title))))),
85
+ React.createElement(Col, { sm: 8 },
86
+ React.createElement(Tab.Content, null, (features).map((feature, ndx) => {
87
+ // const feature = features[featureKey];
88
+ return (React.createElement(Tab.Pane, { eventKey: `feature/${feature._id}`, key: ndx },
89
+ React.createElement("pre", null, JSON.stringify(feature, null, 2)),
90
+ React.createElement("ol", null, results.filter((result) => {
91
+ console.log("mark1", (result.testresults.src));
92
+ // return test._id === feature._id
93
+ // (result.testresults.givens.features || []).includes(feature._id)
94
+ // console.log("ark3", new Set(result.testresults.givens.reduce((mm: string[], el) => {
95
+ // mm = mm.concat(el.features)
96
+ // // console.log("mark2", el);
97
+ // // el.features.forEach((feature) => {
98
+ // // mm.add(feature)
99
+ // // });
100
+ // return mm;
101
+ // }, [])));
102
+ return new Set(result.testresults.givens.reduce((mm, el) => {
103
+ mm = mm.concat(el.features);
104
+ // console.log("mark2", el);
105
+ // el.features.forEach((feature) => {
106
+ // mm.add(feature)
107
+ // });
108
+ return mm;
109
+ }, [])).has(feature._id);
110
+ }).map((result) => {
111
+ return React.createElement("li", null, result.src);
112
+ }))));
113
+ })))));
114
+ return React.createElement(Crud2, { schema: featuresSchema, collectionName: "features", collection: features });
115
+ };
116
+ const Tests = ({ tests, results, features, adminMode }) => {
117
+ if (!adminMode)
118
+ return React.createElement(Tab.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" },
119
+ React.createElement(Row, null,
120
+ React.createElement(Col, { sm: 4 },
121
+ React.createElement(Nav, { variant: "pills", className: "flex-column" }, tests.tests.map((t, ndx) => React.createElement(Nav.Item, { key: ndx },
122
+ React.createElement(Nav.Link, { eventKey: `test-${ndx}` },
123
+ t[0],
124
+ " - ",
125
+ t[1]))))),
126
+ React.createElement(Col, { sm: 4 },
127
+ React.createElement(Tab.Content, null, tests.tests.map((t, ndx) => React.createElement(Tab.Pane, { eventKey: `test-${ndx}` },
128
+ React.createElement("pre", null, JSON.stringify(Object.entries(results).filter(([k, v]) => {
129
+ console.log(v.src, tests.tests[ndx][0]);
130
+ return v.src === tests.tests[ndx][0];
131
+ }), null, 2))))))));
132
+ // return <Crud collectionName="features" collection={features}></Crud>
133
+ return React.createElement("div", null);
134
+ };
135
+ const TaskMan = ({ setAdminMode, users, adminMode, children }) => {
136
+ return React.createElement("div", null,
137
+ React.createElement("div", { className: "row" },
138
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
139
+ React.createElement(Container, { fluid: true },
140
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
141
+ React.createElement(Navbar.Collapse, { id: "basic-navbar-nav" },
142
+ React.createElement(Nav, { className: "me-auto" },
143
+ React.createElement(Tabs, { defaultActiveKey: "/tests" },
144
+ React.createElement(Tab, { eventKey: "features", title: React.createElement(NavLink, { to: "/taskMan/features", className: "nav-link" }, "Features") }),
145
+ React.createElement(Tab, { eventKey: "kanban", title: React.createElement(NavLink, { to: "/taskMan/kanban", className: "nav-link" }, "Kanban") }),
146
+ React.createElement(Tab, { eventKey: "gantt", title: React.createElement(NavLink, { to: "/taskMan/gantt", className: "nav-link" }, "Gantt") }))),
147
+ React.createElement(NavDropdown, { align: "end", title: "User", id: "basic-nav-dropdown" },
148
+ users.map((user) => {
149
+ return React.createElement(NavDropdown.Item, { href: "#action/3.1" }, user.email);
150
+ }),
151
+ React.createElement(NavDropdown.Divider, null),
152
+ React.createElement(NavDropdown.Item, { href: "#action/3.4" }, "all")),
153
+ React.createElement(ButtonGroup, { className: "mb-2" },
154
+ React.createElement(ToggleButton, { id: "toggle-check", type: "checkbox", variant: "outline-primary", checked: adminMode, value: "1", onChange: (e) => setAdminMode(!adminMode) }, "\u2699\uFE0F")))))),
155
+ children);
156
+ };
157
+ const DocGal = ({ setAdminMode, users, adminMode, children }) => {
158
+ return React.createElement("div", null,
159
+ React.createElement("div", { className: "row" },
160
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
161
+ React.createElement(Container, { fluid: true },
162
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
163
+ React.createElement(Navbar.Collapse, { id: "docGal-navbar-nav" },
164
+ React.createElement(Nav, { className: "me-auto" },
165
+ React.createElement(Tabs, { defaultActiveKey: "/fs" },
166
+ React.createElement(Tab, { eventKey: "fs", title: React.createElement(NavLink, { to: "/docGal/fs", className: "nav-link" }, "FS") }),
167
+ React.createElement(Tab, { eventKey: "db", title: React.createElement(NavLink, { to: "/docGal/db", className: "nav-link" }, "DB") }))))))),
168
+ children);
169
+ };
170
+ const ChatCat = ({ children }) => {
171
+ return React.createElement("div", null,
172
+ React.createElement("div", { className: "row" },
173
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
174
+ React.createElement(Container, { fluid: true },
175
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
176
+ React.createElement(Navbar.Collapse, { id: "basic-navbar-nav" },
177
+ React.createElement(Nav, { className: "me-auto" },
178
+ React.createElement(Tabs, { defaultActiveKey: "/chatCat/mostRecent" },
179
+ React.createElement(Tab, { eventKey: "/chatCat/mostRecent", title: React.createElement(NavLink, { to: "/chatCat/mostRecent", className: "nav-link" }, "Most Recent") }),
180
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "by Subject") }))))))),
181
+ children);
182
+ // return <div>
183
+ // <Row>
184
+ // <Col sm={2}>
185
+ // <Nav variant="pills" className="flex-column">
186
+ // <h4>Rooms</h4>
187
+ // {(chatCatRooms).map((room, ndx) => <Nav.Item key={ndx}>
188
+ // <Nav.Link eventKey={`chatCat/room/${room._id}`}>
189
+ // {room.name}
190
+ // </Nav.Link>
191
+ // </Nav.Item>)}
192
+ // <h4>Huddles</h4>
193
+ // {(chatCatHuddles).map((huddle, ndx) => <Nav.Item key={ndx}>
194
+ // <Nav.Link eventKey={`chatCat/user${huddle._id}`}>
195
+ // {huddle.name}
196
+ // </Nav.Link>
197
+ // </Nav.Item>)}
198
+ // <h4>Users</h4>
199
+ // {(users).map((user, ndx) => <Nav.Item key={ndx}>
200
+ // <Nav.Link eventKey={`chatCat/user/${user._id}`}>
201
+ // {user.email}
202
+ // </Nav.Link>
203
+ // </Nav.Item>)}
204
+ // </Nav>
205
+ // </Col>
206
+ // <Col sm={10}>
207
+ // <Tab.Content>
208
+ // {(chatCatRooms).map((channel, ndx) => {
209
+ // return (
210
+ // <Tab.Pane eventKey={`chatCat/${channel}`} key={ndx}>
211
+ // <pre>{JSON.stringify(channel, null, 2)}</pre>
212
+ // </Tab.Pane>
213
+ // )
214
+ // }
215
+ // )}
216
+ // </Tab.Content>
217
+ // </Col>
218
+ // </Row>
219
+ // </div>
220
+ };
221
+ const WhoThat = ({ children }) => {
222
+ return React.createElement("div", null,
223
+ React.createElement("div", { className: "row" },
224
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
225
+ React.createElement(Container, { fluid: true },
226
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
227
+ React.createElement(Navbar.Collapse, { id: "basic-navbar-nav" },
228
+ React.createElement(Nav, { className: "me-auto" },
229
+ React.createElement(Tabs, { defaultActiveKey: "/whoThat/people" },
230
+ React.createElement(Tab, { eventKey: "/whoThat/people", title: React.createElement(NavLink, { to: "/whoThat/people", className: "nav-link" }, "People") }),
231
+ React.createElement(Tab, { eventKey: "/whoThat/groups", title: React.createElement(NavLink, { to: "/whoThat/groups", className: "nav-link" }, "Groups") }),
232
+ React.createElement(Tab, { eventKey: "/whoThat/org", title: React.createElement(NavLink, { to: "/whoThat/org", className: "nav-link" }, "Org") }))),
233
+ React.createElement(ButtonGroup, { className: "mb-2" },
234
+ React.createElement(ToggleButton, { id: "toggle-check", type: "checkbox", variant: "outline-primary", checked: false, value: "1" }, "\u2699\uFE0F")))))),
235
+ children);
236
+ // return <div>
237
+ // <Row>
238
+ // <Col sm={2}>
239
+ // <Nav variant="pills" className="flex-column">
240
+ // <h4>Rooms</h4>
241
+ // {(chatCatRooms).map((room, ndx) => <Nav.Item key={ndx}>
242
+ // <Nav.Link eventKey={`chatCat/room/${room._id}`}>
243
+ // {room.name}
244
+ // </Nav.Link>
245
+ // </Nav.Item>)}
246
+ // <h4>Huddles</h4>
247
+ // {(chatCatHuddles).map((huddle, ndx) => <Nav.Item key={ndx}>
248
+ // <Nav.Link eventKey={`chatCat/user${huddle._id}`}>
249
+ // {huddle.name}
250
+ // </Nav.Link>
251
+ // </Nav.Item>)}
252
+ // <h4>Users</h4>
253
+ // {(users).map((user, ndx) => <Nav.Item key={ndx}>
254
+ // <Nav.Link eventKey={`chatCat/user/${user._id}`}>
255
+ // {user.email}
256
+ // </Nav.Link>
257
+ // </Nav.Item>)}
258
+ // </Nav>
259
+ // </Col>
260
+ // <Col sm={10}>
261
+ // <Tab.Content>
262
+ // {(chatCatRooms).map((channel, ndx) => {
263
+ // return (
264
+ // <Tab.Pane eventKey={`chatCat/${channel}`} key={ndx}>
265
+ // <pre>{JSON.stringify(channel, null, 2)}</pre>
266
+ // </Tab.Pane>
267
+ // )
268
+ // }
269
+ // )}
270
+ // </Tab.Content>
271
+ // </Col>
272
+ // </Row>
273
+ // </div>
274
+ };
275
+ const Kanban = ({ features, tests, results, kanban, openNewColumnModal, adminMode }) => {
276
+ const board = {
277
+ columns: [
278
+ {
279
+ id: -1,
280
+ title: 'BACKLOG',
281
+ cards: features.filter((f) => f.state === undefined)
282
+ },
283
+ {
284
+ id: 0,
285
+ title: 'ARCHIVE',
286
+ cards: features.filter((f) => f.state === "ARCHIVED")
287
+ },
288
+ ...kanban.map((kb) => {
289
+ return {
290
+ id: kb._id,
291
+ title: kb.title,
292
+ cards: features.filter((f) => f.state === kb._id)
293
+ };
294
+ }),
295
+ // {
296
+ // id: 1,
297
+ // title: 'Backlog',
298
+ // cards: [
299
+ // {
300
+ // id: 1,
301
+ // title: 'Add card',
302
+ // description: 'Add capability to add a card in a column'
303
+ // },
304
+ // ]
305
+ // },
306
+ ]
307
+ };
308
+ if (!adminMode)
309
+ return React.createElement(Tab.Container, { id: "left-tabs-example8", defaultActiveKey: "feature-0" },
310
+ React.createElement(Row, null,
311
+ React.createElement(Col, { sm: 12 },
312
+ React.createElement("button", { onClick: () => {
313
+ openNewColumnModal();
314
+ } }, "new column"),
315
+ React.createElement(UncontrolledBoard, { initialBoard: board }))));
316
+ return React.createElement(Crud2, { schema: kanbanSchema, collectionName: "kanban", collection: kanban });
317
+ };
318
+ const GanttChart = ({ gantt, tests, results, features, adminMode }) => {
319
+ if (!adminMode) {
320
+ if (gantt.length > 1) {
321
+ return React.createElement(Row, null,
322
+ React.createElement(Col, { sm: 12 },
323
+ React.createElement(Gantt, { tasks: (gantt || []).map((g) => {
324
+ console.log(g);
325
+ let task = {
326
+ start: new Date(2020, 1, 1),
327
+ end: new Date(2020, 1, 2),
328
+ name: g.name,
329
+ id: g._id,
330
+ type: g.type,
331
+ progress: 45,
332
+ isDisabled: false,
333
+ styles: { progressColor: '#ffbb54', progressSelectedColor: '#ff9e0d' },
334
+ };
335
+ console.log(task);
336
+ return task;
337
+ }) })));
338
+ }
339
+ else {
340
+ return React.createElement("p", null, "you need to add some gantt items");
341
+ }
342
+ }
343
+ return React.createElement(Crud2, { schema: ganttSchema, collectionName: "gantt", collection: gantt });
344
+ };
345
+ const Users = ({ users, adminMode }) => {
346
+ if (!adminMode)
347
+ return React.createElement(Tab.Container, { id: "left-tabs-example9", defaultActiveKey: "feature-0" },
348
+ React.createElement(Row, null,
349
+ React.createElement(Col, { sm: 12 },
350
+ React.createElement("ul", null, users.map((user) => {
351
+ return React.createElement("li", null, user.email);
352
+ })))));
353
+ return React.createElement(Crud2, { schema: userSchema, collectionName: "users", collection: users });
354
+ };
355
+ const OrgChart = ({ users, adminMode }) => {
356
+ const initialNodes = [
357
+ { id: '1', position: { x: 0, y: 0 }, data: { label: '1' } },
358
+ { id: '2', position: { x: 0, y: 100 }, data: { label: '2' } },
359
+ ];
360
+ const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];
361
+ if (!adminMode)
362
+ return React.createElement(Tab.Container, { id: "left-tabs-example9", defaultActiveKey: "feature-0" },
363
+ React.createElement(Row, null,
364
+ React.createElement(Col, { sm: 12 },
365
+ React.createElement("div", { style: { width: '100vw', height: '100vh' } },
366
+ React.createElement(ReactFlow, { nodes: [
367
+ ...initialNodes,
368
+ ...users.map((user) => {
369
+ return ({ id: user._id, position: { x: 0, y: 0 }, data: { label: user.email } });
370
+ })
371
+ ], edges: initialEdges })))));
372
+ return React.createElement(Crud2, { schema: userSchema, collectionName: "users", collection: users });
373
+ };
374
+ const DocGalFsNav = ({ docGalFs, filepath }) => {
375
+ return React.createElement("div", null,
376
+ React.createElement("ul", null, ...docGalFs.map((lm) => {
377
+ return React.createElement("li", null,
378
+ React.createElement("a", { href: `${filepath}/${lm.name}` }, lm.name),
379
+ lm.children.length > 0 && React.createElement(DocGalFsNav, { docGalFs: lm.children, filepath: `${filepath}/${lm.name}` }));
380
+ })));
381
+ };
382
+ const DocGalFs = ({ docGalFs,
383
+ // tests, results, features, adminMode
384
+ }) => {
385
+ // return <Row>
386
+ // <Col sm={12}>
387
+ // {JSON.stringify(docGalFs, null, 2)}
388
+ // </Col>
389
+ // </Row>
390
+ return React.createElement(Row, null,
391
+ React.createElement(Col, { sm: 4 },
392
+ React.createElement(DocGalFsNav, { docGalFs: docGalFs, filepath: "" })),
393
+ React.createElement(Col, { sm: 4 },
394
+ React.createElement(Tab.Content, null)));
395
+ };
396
+ const DocGalDb = ({}) => {
397
+ return React.createElement(Row, null,
398
+ React.createElement(Col, { sm: 12 }, "DocGalDb"));
399
+ };
400
+ const ChatCatPeople = ({ users }) => {
401
+ return React.createElement(Tab.Container, { id: "left-tabs-example9", defaultActiveKey: "feature-0" },
402
+ React.createElement(Row, null,
403
+ React.createElement(Col, { sm: 12 },
404
+ React.createElement("ul", null, users.map((user) => {
405
+ return React.createElement("li", null, user.email);
406
+ })))));
407
+ };
408
+ const ChatCatConversations = ({ users, conversations }) => {
409
+ // return <Tab.Container id="left-tabs-example9" defaultActiveKey="feature-0">
410
+ // <Row>
411
+ // <Col sm={12}>
412
+ // <ul>
413
+ // {
414
+ // users.map((user) => {
415
+ // return <li>
416
+ // {user.email}
417
+ // </li>
418
+ // })
419
+ // }
420
+ // </ul>
421
+ // </Col>
422
+ // </Row>
423
+ // </Tab.Container>
424
+ return React.createElement(Row, null,
425
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
426
+ React.createElement(Container, { fluid: true },
427
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
428
+ React.createElement(Navbar.Collapse, { id: "basic-navbar-nav" },
429
+ React.createElement(Nav, { className: "me-auto" },
430
+ React.createElement(Tabs, { defaultActiveKey: "/chatCat/mostRecent" },
431
+ React.createElement(Tab, { eventKey: "/chatCat/mostRecent", title: React.createElement(NavLink, { to: "/chatCat/mostRecent", className: "nav-link" }, "Feature") }),
432
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "Kanban") }),
433
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "Gantt") }),
434
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "FS docs") }),
435
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "DB docs") }),
436
+ React.createElement(Tab, { eventKey: "/chatCat/bySubject", title: React.createElement(NavLink, { to: "/chatCat/bySubject", className: "nav-link" }, "Groups") }))),
437
+ React.createElement(ButtonGroup, { className: "mb-2" },
438
+ React.createElement(ToggleButton, { id: "toggle-check", type: "checkbox", variant: "outline-primary", checked: false, value: "1" }, "\u2699\uFE0F"))))));
439
+ };
440
+ const ChatCatRooms = ({ users, rooms }) => {
441
+ return React.createElement(Tab.Container, { id: "left-tabs-example9", defaultActiveKey: "feature-0" },
442
+ React.createElement(Row, null,
443
+ React.createElement(Col, { sm: 12 },
444
+ React.createElement("ul", null, users.map((user) => {
445
+ return React.createElement("li", null, user.email);
446
+ })))));
447
+ };
448
+ const Report = () => {
449
+ const [state, setState] = useState({
450
+ tests: [],
451
+ buildDir: "",
452
+ results: {}
453
+ });
454
+ const [tests, setTests] = useState({
455
+ tests: [],
456
+ buildDir: ""
457
+ });
458
+ const [features, setFeatures] = useState([]);
459
+ const [kanban, setKanban] = useState([]);
460
+ const importResults = async () => {
461
+ const config = await (await fetch("./testeranto.json")).json();
462
+ const results = await Promise.all(config.tests.map((test) => {
463
+ return new Promise(async (res, rej) => {
464
+ const src = test[0];
465
+ const runtime = test[1];
466
+ const s = [tests.buildDir, runtime].concat(src.split(".").slice(0, -1).join(".")).join("/");
467
+ const exitcode = await (await fetch(config.outdir + "/" + s + "/exitcode")).text();
468
+ const log = await (await fetch(config.outdir + "/" + s + "/log.txt")).text();
469
+ const testresults = await (await fetch(config.outdir + "/" + s + "/tests.json")).json();
470
+ const manifest = await (await fetch(config.outdir + "/" + s + "/manifest.json")).json();
471
+ res({ src, exitcode, log, testresults, manifest });
472
+ });
473
+ }));
474
+ setState({ tests: config.tests, results, buildDir: config.buildDir });
475
+ };
476
+ const importFeatures = async () => {
477
+ fetch('http://localhost:3000/features.json')
478
+ .then(response => response.json())
479
+ .then(json => setFeatures(json))
480
+ .catch(error => console.error(error));
481
+ };
482
+ useEffect(() => { importFeatures(); }, []);
483
+ const importKanban = async () => {
484
+ fetch('http://localhost:3000/kanbans.json')
485
+ .then(response => response.json())
486
+ .then(json => setKanban(json))
487
+ .catch(error => console.error(error));
488
+ };
489
+ useEffect(() => { importKanban(); }, []);
490
+ const [users, setUsers] = useState([]);
491
+ const importUsers = async () => {
492
+ fetch('http://localhost:3000/users.json')
493
+ .then(response => response.json())
494
+ .then(json => setUsers(json))
495
+ .catch(error => console.error(error));
496
+ };
497
+ useEffect(() => { importUsers(); }, []);
498
+ const [gantt, setGantt] = useState([]);
499
+ const importGantt = async () => {
500
+ fetch('http://localhost:3000/gantts.json')
501
+ .then(response => response.json())
502
+ .then(json => setGantt(json))
503
+ .catch(error => console.error(error));
504
+ };
505
+ useEffect(() => { importGantt(); }, []);
506
+ const importTests = async () => {
507
+ const x = await fetch("./testeranto.json");
508
+ const y = await x.json();
509
+ setTests(y);
510
+ };
511
+ useEffect(() => { importResults(); }, []);
512
+ useEffect(() => { importTests(); }, []);
513
+ const [activeKey, setActiveKey] = useState('home');
514
+ const handleSelect = (selectedKey) => {
515
+ setActiveKey(selectedKey);
516
+ };
517
+ const [adminMode, setAdminMode] = useState(false);
518
+ const [docGalFs, setDocGalFs] = useState([]);
519
+ const importFs = async () => {
520
+ fetch('http://localhost:3000/docGal/fs.json')
521
+ .then(response => response.json())
522
+ .then(json => setDocGalFs(json))
523
+ .catch(error => console.error(error));
524
+ };
525
+ useEffect(() => { importFs(); }, []);
526
+ const [chatCatRooms, setChatCatRooms] = useState([]);
527
+ const importChatCatRooms = async () => {
528
+ fetch('http://localhost:3000/rooms.json')
529
+ .then(response => response.json())
530
+ .then(json => setChatCatRooms(json))
531
+ .catch(error => console.error(error));
532
+ };
533
+ useEffect(() => { importChatCatRooms(); }, []);
534
+ return (React.createElement("div", null,
535
+ React.createElement("style", null, `
536
+ pre, code, p {
537
+ max-width: 40rem;
538
+ text-wrap: auto;
539
+ }
540
+ footer {
541
+ background-color: lightgray;
542
+ margin: 0.5rem;
543
+ padding: 0.5rem;
544
+ position: fixed;
545
+ bottom: 0;
546
+ right: 0;
547
+ }
548
+
549
+ #root > div > ul {
550
+
551
+ top: 0;
552
+ }
553
+ `),
554
+ React.createElement(Router, null,
555
+ React.createElement(Navbar, { expand: "md", className: "bg-body-tertiary" },
556
+ React.createElement(Container, { fluid: true },
557
+ React.createElement(Navbar.Toggle, { "aria-controls": "basic-navbar-nav" }),
558
+ React.createElement(Navbar.Collapse, { id: "basic-navbar-nav" },
559
+ React.createElement(Nav, { className: "me-auto" },
560
+ React.createElement(Tabs, { defaultActiveKey: "/tests" },
561
+ React.createElement(Tab, { eventKey: "tests", title: React.createElement(NavLink, { to: "/tests", className: "nav-link" }, "TestPup") }),
562
+ React.createElement(Tab, { eventKey: "taskMan", title: React.createElement(NavLink, { to: "/taskMan/features", className: "nav-link" }, "TaskMan") }),
563
+ React.createElement(Tab, { eventKey: "docGal", title: React.createElement(NavLink, { to: "/docGal/fs", className: "nav-link" }, "DocGal") }),
564
+ React.createElement(Tab, { eventKey: "chatCat", title: React.createElement(NavLink, { to: "/chatCat/mostRecent", className: "nav-link" }, "ChatCat") }),
565
+ React.createElement(Tab, { eventKey: "whoThat", title: React.createElement(NavLink, { to: "/whoThat/people", className: "nav-link" }, "WhoThat") })))),
566
+ React.createElement(ButtonGroup, { className: "mb-2" },
567
+ React.createElement(Button, { id: "login", value: "1", onChange: (e) => setAdminMode(!adminMode) }, "Login")))),
568
+ React.createElement(Routes, null,
569
+ React.createElement(Route, { path: "/tests", element: React.createElement(Tests, { adminMode: adminMode, features: features, results: state.results, tests: tests }) }),
570
+ React.createElement(Route, { path: "/chatCat/mostRecent", element: React.createElement(ChatCat, { chatCatRooms: chatCatRooms, chatCatHuddles: [], users: users },
571
+ React.createElement(ChatCatPeople, { users: users })) }),
572
+ React.createElement(Route, { path: "/chatCat/bySubject", element: React.createElement(ChatCat, { chatCatRooms: chatCatRooms, chatCatHuddles: [], users: users },
573
+ React.createElement(ChatCatConversations, { users: users, conversations: [] })) }),
574
+ React.createElement(Route, { path: "/docGal/fs", element: React.createElement(DocGal, { adminMode: adminMode, setAdminMode: setAdminMode, users: users },
575
+ React.createElement(DocGalFs, { docGalFs: docGalFs })) }),
576
+ React.createElement(Route, { path: "/docGal/db", element: React.createElement(DocGal, { adminMode: adminMode, setAdminMode: setAdminMode, users: users },
577
+ React.createElement(DocGalDb, null)) }),
578
+ React.createElement(Route, { path: "/taskMan/features", element: React.createElement(TaskMan, { adminMode: adminMode, setAdminMode: setAdminMode, users: users },
579
+ React.createElement(Features, { adminMode: adminMode, features: features, results: state.results, tests: tests })) }),
580
+ React.createElement(Route, { path: "/taskMan/kanban", element: React.createElement(TaskMan, { adminMode: adminMode, setAdminMode: setAdminMode, users: users },
581
+ React.createElement(Kanban, { adminMode: adminMode, kanban: kanban, results: state.results, tests: tests, features: features, openNewColumnModal: () => {
582
+ } })) }),
583
+ React.createElement(Route, { path: "/taskMan/gantt", element: React.createElement(TaskMan, { adminMode: adminMode, setAdminMode: setAdminMode, users: users },
584
+ React.createElement(GanttChart, { adminMode: adminMode, gantt: gantt, features: features, results: state.results, tests: tests })) }),
585
+ React.createElement(Route, { path: "/whoThat/people", element: React.createElement(WhoThat, { users: users },
586
+ React.createElement(Users, { adminMode: adminMode, users: users })) }),
587
+ React.createElement(Route, { path: "/whoThat/groups", element: React.createElement(WhoThat, { users: users },
588
+ React.createElement(Users, { adminMode: adminMode, users: users })) }),
589
+ React.createElement(Route, { path: "/whoThat/org", element: React.createElement(WhoThat, { users: users },
590
+ React.createElement(OrgChart, { adminMode: adminMode, users: users })) }))),
591
+ React.createElement("footer", null,
592
+ "made with \u2764\uFE0F and ",
593
+ React.createElement("a", { href: "https://adamwong246.github.io/testeranto/" }, "testeranto "))));
594
+ };
595
+ document.addEventListener("DOMContentLoaded", function () {
596
+ const elem = document.getElementById("root");
597
+ if (elem) {
598
+ ReactDom.createRoot(elem).render(React.createElement(Report, {}));
599
+ }
600
+ });
@@ -1,3 +1 @@
1
1
  export {};
2
- // export type ITTestShape = {
3
- // };
@@ -1,5 +1,6 @@
1
1
  export default (config) => {
2
2
  return {
3
+ // packages: "external",
3
4
  target: "esnext",
4
5
  format: "esm",
5
6
  splitting: true,
@@ -0,0 +1,44 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ export default (platform, entryPoints) => {
4
+ return {
5
+ name: "metafileWriter",
6
+ setup(build) {
7
+ build.onEnd((result) => {
8
+ if (result.errors.length === 0) {
9
+ entryPoints.forEach((entryPoint) => {
10
+ const filePath = path.join("./docs/", platform, entryPoint.split(".").slice(0, -1).join("."), `inputFiles.json`);
11
+ const dirName = path.dirname(filePath);
12
+ if (!fs.existsSync(dirName)) {
13
+ fs.mkdirSync(dirName, { recursive: true });
14
+ }
15
+ fs.writeFileSync(filePath, JSON.stringify(Object.keys(Object.keys(result.metafile.outputs)
16
+ .filter((s) => {
17
+ if (!result.metafile.outputs[s].entryPoint) {
18
+ return false;
19
+ }
20
+ return (path.resolve(result.metafile.outputs[s].entryPoint) ===
21
+ path.resolve(entryPoint));
22
+ })
23
+ .reduce((mm, el) => {
24
+ mm.push(result.metafile.outputs[el].inputs);
25
+ return mm;
26
+ }, [])[0])
27
+ .filter((f) => {
28
+ const regex = /^src\/.*/g;
29
+ const matches = f.match(regex);
30
+ const passes = (matches === null || matches === void 0 ? void 0 : matches.length) === 1;
31
+ return passes;
32
+ })
33
+ .filter((f) => {
34
+ const regex = /.*\.test\..*/g;
35
+ const matches = f.match(regex);
36
+ const passes = (matches === null || matches === void 0 ? void 0 : matches.length) === 1;
37
+ return !passes;
38
+ })));
39
+ });
40
+ }
41
+ });
42
+ },
43
+ };
44
+ };