testeranto 0.75.0 → 0.79.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 (138) hide show
  1. package/README.md +25 -24
  2. package/TaskMan.Dockerfile +23 -0
  3. package/TaskMan1.Dockerfile +23 -0
  4. package/devBot.dockerfile +12 -0
  5. package/dist/TaskMan.Dockerfile +23 -0
  6. package/dist/common/Node.js +1 -0
  7. package/dist/common/PM/index.js +0 -64
  8. package/dist/common/PM/main.js +278 -7
  9. package/dist/common/PM/node.js +4 -0
  10. package/dist/common/PM/web.js +3 -0
  11. package/dist/common/Project.js +6 -2
  12. package/dist/common/Puppeteer.js +12 -17
  13. package/dist/common/Reporter.js +1 -8
  14. package/dist/common/SubPackages/react-dom/component/web.js +5 -25
  15. package/dist/common/SubPackages/react-dom/jsx/web.js +80 -55
  16. package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -86
  17. package/dist/common/SubPackages/react-test-renderer/component/interface.js +68 -0
  18. package/dist/common/SubPackages/react-test-renderer/component/node.js +2 -2
  19. package/dist/common/SubPackages/react-test-renderer/component/web.js +2 -2
  20. package/dist/common/TaskManBackEnd.js +174 -0
  21. package/dist/common/Types.js +0 -2
  22. package/dist/common/esbuildConfigs/index.js +1 -0
  23. package/dist/common/esbuildConfigs/inputFilesPlugin.js +49 -0
  24. package/dist/common/esbuildConfigs/node.js +3 -1
  25. package/dist/common/esbuildConfigs/web.js +3 -1
  26. package/dist/common/lib/abstractBase.js +222 -17
  27. package/dist/common/lib/basebuilder.js +4 -38
  28. package/dist/common/lib/classBuilder.js +1 -3
  29. package/dist/common/lib/core.js +3 -5
  30. package/dist/common/mongooseSchemas.js +56 -0
  31. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  32. package/dist/common/utils.js +16 -0
  33. package/dist/module/ExampleTab.js +112 -0
  34. package/dist/module/Node.js +1 -0
  35. package/dist/module/PM/index.js +0 -64
  36. package/dist/module/PM/main.js +278 -7
  37. package/dist/module/PM/node.js +4 -0
  38. package/dist/module/PM/web.js +3 -0
  39. package/dist/module/Project.js +6 -2
  40. package/dist/module/Puppeteer.js +12 -17
  41. package/dist/module/Reporter.js +1 -8
  42. package/dist/module/SubPackages/react-dom/component/web.js +5 -25
  43. package/dist/module/SubPackages/react-dom/jsx/web.js +80 -55
  44. package/dist/module/SubPackages/react-test-renderer/component/index.js +1 -59
  45. package/dist/module/SubPackages/react-test-renderer/component/interface.js +39 -0
  46. package/dist/module/SubPackages/react-test-renderer/component/node.js +1 -1
  47. package/dist/module/SubPackages/react-test-renderer/component/web.js +1 -1
  48. package/dist/module/TaskManBackEnd.js +169 -0
  49. package/dist/module/TaskManFrontEnd.js +600 -0
  50. package/dist/module/Types.js +0 -2
  51. package/dist/module/esbuildConfigs/index.js +1 -0
  52. package/dist/module/esbuildConfigs/inputFilesPlugin.js +44 -0
  53. package/dist/module/esbuildConfigs/node.js +3 -1
  54. package/dist/module/esbuildConfigs/web.js +3 -1
  55. package/dist/module/lib/abstractBase.js +222 -17
  56. package/dist/module/lib/basebuilder.js +4 -38
  57. package/dist/module/lib/classBuilder.js +1 -3
  58. package/dist/module/lib/core.js +3 -5
  59. package/dist/module/mongooseSchemas.js +50 -0
  60. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  61. package/dist/module/utils.js +9 -0
  62. package/dist/prebuild/Report.js +117 -36
  63. package/dist/prebuild/TaskManBackEnd.mjs +180 -0
  64. package/dist/prebuild/TaskManFrontEnd.css +12301 -0
  65. package/dist/prebuild/TaskManFrontEnd.js +81737 -0
  66. package/dist/types/Node.d.ts +1 -1
  67. package/dist/types/PM/index.d.ts +2 -1
  68. package/dist/types/PM/main.d.ts +6 -3
  69. package/dist/types/PM/node.d.ts +2 -0
  70. package/dist/types/PM/web.d.ts +1 -0
  71. package/dist/types/SubPackages/puppeteer.d.ts +1 -1
  72. package/dist/types/SubPackages/react/component/node.d.ts +1 -1
  73. package/dist/types/SubPackages/react/component/web.d.ts +1 -1
  74. package/dist/types/SubPackages/react/jsx/node.d.ts +2 -2
  75. package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
  76. package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
  77. package/dist/types/SubPackages/react-dom/component/web.d.ts +8 -2
  78. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +2 -2
  79. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +2 -2
  80. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +2 -2
  81. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +0 -7
  82. package/dist/types/SubPackages/react-test-renderer/component/interface.d.ts +9 -0
  83. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -2
  84. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -2
  85. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
  86. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
  87. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -2
  88. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +1 -2
  89. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -2
  90. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -2
  91. package/dist/types/TaskManBackEnd.d.ts +1 -0
  92. package/dist/types/Types.d.ts +19 -19
  93. package/dist/types/Web.d.ts +1 -1
  94. package/dist/types/esbuildConfigs/inputFilesPlugin.d.ts +5 -0
  95. package/dist/types/lib/abstractBase.d.ts +8 -8
  96. package/dist/types/lib/basebuilder.d.ts +1 -1
  97. package/dist/types/lib/classBuilder.d.ts +1 -1
  98. package/dist/types/lib/core.d.ts +1 -1
  99. package/dist/types/lib/index.d.ts +5 -5
  100. package/dist/types/lib/types.d.ts +15 -13
  101. package/dist/types/mongooseSchemas.d.ts +124 -0
  102. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  103. package/dist/types/utils.d.ts +2 -0
  104. package/docker-compose-dev.yml +9 -0
  105. package/docker-compose-prod.yml +18 -0
  106. package/package.json +20 -7
  107. package/src/ExampleTab.tsx +219 -0
  108. package/src/Node.ts +31 -2
  109. package/src/PM/index.ts +6 -83
  110. package/src/PM/main.ts +389 -11
  111. package/src/PM/node.ts +6 -0
  112. package/src/PM/web.ts +4 -0
  113. package/src/Project.ts +10 -2
  114. package/src/Puppeteer.ts +16 -17
  115. package/src/Report.tsx +17 -40
  116. package/src/Reporter.ts +1 -9
  117. package/src/SubPackages/react-dom/component/web.ts +10 -30
  118. package/src/SubPackages/react-dom/jsx/web.ts +111 -74
  119. package/src/SubPackages/react-test-renderer/component/index.ts +0 -66
  120. package/src/SubPackages/react-test-renderer/component/interface.ts +48 -0
  121. package/src/SubPackages/react-test-renderer/component/node.ts +2 -1
  122. package/src/SubPackages/react-test-renderer/component/web.ts +2 -1
  123. package/src/TaskManBackEnd.ts +218 -0
  124. package/src/TaskManFrontEnd.tsx +1222 -0
  125. package/src/Types.ts +136 -28
  126. package/src/Web.ts +32 -2
  127. package/src/esbuildConfigs/index.ts +1 -0
  128. package/src/esbuildConfigs/inputFilesPlugin.ts +65 -0
  129. package/src/esbuildConfigs/node.ts +3 -1
  130. package/src/esbuildConfigs/web.ts +4 -0
  131. package/src/lib/abstractBase.ts +337 -34
  132. package/src/lib/basebuilder.ts +17 -52
  133. package/src/lib/classBuilder.ts +14 -2
  134. package/src/lib/core.ts +18 -7
  135. package/src/lib/index.ts +115 -7
  136. package/src/lib/types.ts +143 -35
  137. package/src/mongooseSchemas.ts +105 -0
  138. package/src/utils.ts +15 -0
@@ -0,0 +1,9 @@
1
+ // import { configs } from "eslint-plugin-react";
2
+ import path from "path";
3
+ export const destinationOfRuntime = (f, r, configs) => {
4
+ return path
5
+ .normalize(`${configs.buildDir}/${r}/${f}`)
6
+ .split(".")
7
+ .slice(0, -1)
8
+ .join(".");
9
+ };
@@ -1092,7 +1092,7 @@
1092
1092
  }
1093
1093
  return dispatcher.useContext(Context);
1094
1094
  }
1095
- function useState8(initialState) {
1095
+ function useState9(initialState) {
1096
1096
  var dispatcher = resolveDispatcher();
1097
1097
  return dispatcher.useState(initialState);
1098
1098
  }
@@ -1104,7 +1104,7 @@
1104
1104
  var dispatcher = resolveDispatcher();
1105
1105
  return dispatcher.useRef(initialValue);
1106
1106
  }
1107
- function useEffect12(create, deps) {
1107
+ function useEffect13(create, deps) {
1108
1108
  var dispatcher = resolveDispatcher();
1109
1109
  return dispatcher.useEffect(create, deps);
1110
1110
  }
@@ -1886,7 +1886,7 @@
1886
1886
  exports2.useContext = useContext6;
1887
1887
  exports2.useDebugValue = useDebugValue;
1888
1888
  exports2.useDeferredValue = useDeferredValue;
1889
- exports2.useEffect = useEffect12;
1889
+ exports2.useEffect = useEffect13;
1890
1890
  exports2.useId = useId;
1891
1891
  exports2.useImperativeHandle = useImperativeHandle;
1892
1892
  exports2.useInsertionEffect = useInsertionEffect;
@@ -1894,7 +1894,7 @@
1894
1894
  exports2.useMemo = useMemo5;
1895
1895
  exports2.useReducer = useReducer2;
1896
1896
  exports2.useRef = useRef9;
1897
- exports2.useState = useState8;
1897
+ exports2.useState = useState9;
1898
1898
  exports2.useSyncExternalStore = useSyncExternalStore;
1899
1899
  exports2.useTransition = useTransition;
1900
1900
  exports2.version = ReactVersion;
@@ -2390,9 +2390,9 @@
2390
2390
  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== "undefined" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === "function") {
2391
2391
  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
2392
2392
  }
2393
- var React44 = require_react();
2393
+ var React45 = require_react();
2394
2394
  var Scheduler = require_scheduler();
2395
- var ReactSharedInternals = React44.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
2395
+ var ReactSharedInternals = React45.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
2396
2396
  var suppressWarning = false;
2397
2397
  function setSuppressWarning(newSuppressWarning) {
2398
2398
  {
@@ -3997,7 +3997,7 @@
3997
3997
  {
3998
3998
  if (props.value == null) {
3999
3999
  if (typeof props.children === "object" && props.children !== null) {
4000
- React44.Children.forEach(props.children, function(child) {
4000
+ React45.Children.forEach(props.children, function(child) {
4001
4001
  if (child == null) {
4002
4002
  return;
4003
4003
  }
@@ -23626,7 +23626,7 @@
23626
23626
  if (true) {
23627
23627
  (function() {
23628
23628
  "use strict";
23629
- var React44 = require_react();
23629
+ var React45 = require_react();
23630
23630
  var REACT_ELEMENT_TYPE = Symbol.for("react.element");
23631
23631
  var REACT_PORTAL_TYPE = Symbol.for("react.portal");
23632
23632
  var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
@@ -23652,7 +23652,7 @@
23652
23652
  }
23653
23653
  return null;
23654
23654
  }
23655
- var ReactSharedInternals = React44.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
23655
+ var ReactSharedInternals = React45.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
23656
23656
  function error(format) {
23657
23657
  {
23658
23658
  {
@@ -29451,7 +29451,7 @@
29451
29451
  });
29452
29452
 
29453
29453
  // src/Report.tsx
29454
- var import_react46 = __toESM(require_react(), 1);
29454
+ var import_react47 = __toESM(require_react(), 1);
29455
29455
  var import_client = __toESM(require_client(), 1);
29456
29456
 
29457
29457
  // node_modules/react-bootstrap/esm/Col.js
@@ -37362,6 +37362,89 @@
37362
37362
  }
37363
37363
  };
37364
37364
 
37365
+ // src/ExampleTab.tsx
37366
+ var import_react46 = __toESM(require_react(), 1);
37367
+ var queryString = window.location.search;
37368
+ var urlParams = new URLSearchParams(queryString);
37369
+ console.log("urlParams", urlParams.has(
37370
+ "local"
37371
+ ));
37372
+ var isLocal = urlParams.get("local");
37373
+ var urlFixer = (url) => {
37374
+ if (isLocal) {
37375
+ return `file:///Users/adam/Code/kokomoBay/${url}`;
37376
+ } else {
37377
+ return `https://chromapdx.github.io/kokomoBay/${url}`;
37378
+ }
37379
+ };
37380
+ var TextTab = (props) => {
37381
+ const [text, setText] = (0, import_react46.useState)("");
37382
+ (0, import_react46.useEffect)(() => {
37383
+ fetch(props.url).then((response) => response.text()).then((data) => setText(data)).catch((error) => console.error("Error fetching text:", error));
37384
+ }, []);
37385
+ return /* @__PURE__ */ import_react46.default.createElement("code", null, /* @__PURE__ */ import_react46.default.createElement("pre", null, text));
37386
+ };
37387
+ var ExampleTab_default = () => {
37388
+ return /* @__PURE__ */ import_react46.default.createElement(Tab_default.Container, { id: "left-tabs-example5", defaultActiveKey: "examples-0" }, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 3, lg: 2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `manual-example-rectangle` }, "RECTANGLE"), /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `manual-example-ClassicalComponent` }, "ClassicalComponent"), /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `manual-example-react+sol` }, "React and solidity"))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 3, lg: 2 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-rectangle`, key: `manual-example-rectangle` }, /* @__PURE__ */ import_react46.default.createElement("pre", null, "In this contrived example, we are testing the Rectangle class. Node that because it uses no web-specific, nor node-specific language features, it can be run in either runtime, thought it more efficient and reasonable to test in node.")), /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-ClassicalComponent`, key: `manual-example-ClassicalComponent` }, /* @__PURE__ */ import_react46.default.createElement("pre", null, "Testing a react component with the react-test-renderer package.")), /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-react+sol`, key: `manual-example-react+sol` }, /* @__PURE__ */ import_react46.default.createElement("pre", null, "Testing a react component which is backed by a solidity contract. This test is performed _on_ the server but but _through_ the browser. The react element is renderer into an chromium window and accessed by puppeteer.")))), /* @__PURE__ */ import_react46.default.createElement(Col_default, null, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-rectangle`, key: `manual-example-rectangle` }, /* @__PURE__ */ import_react46.default.createElement(
37389
+ Tabs_default2,
37390
+ {
37391
+ defaultActiveKey: "profile",
37392
+ id: "uncontrolled-tab-example",
37393
+ className: "mb-3"
37394
+ },
37395
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.ts", title: "Rectangle.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/Rectangle.ts") })),
37396
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.test.specification.ts", title: "Rectangle.test.specification.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/Rectangle.test.specification.ts") })),
37397
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.test.shape.ts", title: "Rectangle.test.shape.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/Rectangle.test.shape.ts") })),
37398
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.test.implementation.ts", title: "Rectangle.test.implementation.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/Rectangle.test.implementation.ts") })),
37399
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.test.interface.ts", title: "Rectangle.test.interface.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/Rectangle.test.interface.ts") })),
37400
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "Rectangle.config", title: "Rectangle.config" }, /* @__PURE__ */ import_react46.default.createElement("code", null, /* @__PURE__ */ import_react46.default.createElement("pre", null, `
37401
+ ...
37402
+
37403
+ // Run the test in node
37404
+ "./src/Rectangle/Rectangle.test.node.ts",
37405
+ "node",
37406
+ { ports: 0 },
37407
+ [],
37408
+ ],
37409
+
37410
+ // Run the same test in chromium too!
37411
+ "./src/Rectangle/Rectangle.test.web.ts",
37412
+ "web",
37413
+ { ports: 0 },
37414
+ [],
37415
+ ],
37416
+
37417
+ ...
37418
+ `)))
37419
+ )), /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-ClassicalComponent`, key: `manual-example-ClassicalComponent` }, /* @__PURE__ */ import_react46.default.createElement(
37420
+ Tabs_default2,
37421
+ {
37422
+ defaultActiveKey: "profile",
37423
+ id: "uncontrolled-tab-example",
37424
+ className: "mb-3"
37425
+ },
37426
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "ClassicalComponent/index.tsx", title: "ClassicalComponent/index.tsx" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/ClassicalComponent/index.tsx") })),
37427
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "ClassicalComponent/test.specification.ts", title: "ClassicalComponent/test.specification.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/ClassicalComponent/test.specification.ts") })),
37428
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "ClassicalComponent/test.shape.ts", title: "ClassicalComponent/test.shape.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/ClassicalComponent/test.shape.ts") })),
37429
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "ClassicalComponent/react-test-renderer/test.implementation.ts", title: "ClassicalComponent/react-test-renderer/test.implementation.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/ClassicalComponent/react-test-renderer/test.implementation.ts") })),
37430
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "react-test-renderer/test.interface.ts", title: "react-test-renderer/test.interface.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: "https://raw.githubusercontent.com/adamwong246/testeranto/master/src/subPackages/react-test-renderer/component/interface.ts" }))
37431
+ )), /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `manual-example-react+sol`, key: `manual-example-react+sol` }, /* @__PURE__ */ import_react46.default.createElement(
37432
+ Tabs_default2,
37433
+ {
37434
+ defaultActiveKey: "profile",
37435
+ id: "uncontrolled-tab-example",
37436
+ className: "mb-3"
37437
+ },
37438
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "contracts/MyBaseContract.sol", title: "MyBaseContract.sol" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("contracts/MyBaseContract.sol") })),
37439
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "src/MyFirstContractUI.tsx", title: "MyFirstContractUI.tsx" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/MyFirstContractUI.tsx") })),
37440
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "src/MyFirstContract.specification.test.ts", title: "MyFirstContract.specification.test.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/MyFirstContract.specification.test.ts") })),
37441
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "src/MyFirstContract.solidity-react.interface.test.ts", title: "MyFirstContract.solidity-react.interface.test.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/MyFirstContract.solidity-react.interface.test.ts") })),
37442
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "src/MyFirstContract.solidity-react.implementation.test.ts", title: "MyFirstContract.solidity-react.implementation.test.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/MyFirstContract.solidity-react.implementation.test.ts") })),
37443
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "src/MyFirstContract.solidity-react.shape.test.ts", title: "MyFirstContract.solidity-react.shape.test.ts" }, /* @__PURE__ */ import_react46.default.createElement(TextTab, { url: urlFixer("src/MyFirstContract.solidity-react.shape.test.ts") })),
37444
+ /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "MyFirstContract.solidity-react-example-jpg", title: "screenshot" }, /* @__PURE__ */ import_react46.default.createElement("img", { src: urlFixer("docs/node/src/MyFirstContract.solidity-react.testeranto/suite-0/given-test1/when/0/afterEach/andWhen.jpg") }))
37445
+ ))))));
37446
+ };
37447
+
37365
37448
  // src/Report.tsx
37366
37449
  var graphToIGraphData = (g) => {
37367
37450
  return {
@@ -37384,11 +37467,11 @@
37384
37467
  document.addEventListener("DOMContentLoaded", function() {
37385
37468
  const elem = document.getElementById("root");
37386
37469
  if (elem) {
37387
- import_client.default.createRoot(elem).render(import_react46.default.createElement(Report, {}));
37470
+ import_client.default.createRoot(elem).render(import_react47.default.createElement(Report, {}));
37388
37471
  }
37389
37472
  });
37390
37473
  var Report = () => {
37391
- const [state, setState] = (0, import_react46.useState)({
37474
+ const [state, setState] = (0, import_react47.useState)({
37392
37475
  tests: [],
37393
37476
  buildDir: "",
37394
37477
  features: new TesterantoFeatures({}, {
@@ -37398,18 +37481,18 @@
37398
37481
  }),
37399
37482
  results: {}
37400
37483
  });
37401
- const [tests, setTests] = (0, import_react46.useState)({
37484
+ const [tests, setTests] = (0, import_react47.useState)({
37402
37485
  tests: [],
37403
37486
  buildDir: ""
37404
37487
  });
37405
- const [features, setFeatures] = (0, import_react46.useState)(
37488
+ const [features, setFeatures] = (0, import_react47.useState)(
37406
37489
  new TesterantoFeatures({}, {
37407
37490
  undirected: [],
37408
37491
  directed: [],
37409
37492
  dags: []
37410
37493
  })
37411
37494
  );
37412
- const [results, setResults] = (0, import_react46.useState)(
37495
+ const [results, setResults] = (0, import_react47.useState)(
37413
37496
  {}
37414
37497
  );
37415
37498
  const importState = async () => {
@@ -37427,7 +37510,6 @@
37427
37510
  res({ src, exitcode, log, testresults, manifest });
37428
37511
  });
37429
37512
  }));
37430
- console.log("results", results2);
37431
37513
  setState({ tests: config.tests, results: results2, features: features2, buildDir: config.buildDir });
37432
37514
  };
37433
37515
  const importFeatures = async () => {
@@ -37439,16 +37521,16 @@
37439
37521
  const y = await x.json();
37440
37522
  setTests(y);
37441
37523
  };
37442
- (0, import_react46.useEffect)(() => {
37524
+ (0, import_react47.useEffect)(() => {
37443
37525
  importState();
37444
37526
  }, []);
37445
- (0, import_react46.useEffect)(() => {
37527
+ (0, import_react47.useEffect)(() => {
37446
37528
  importFeatures();
37447
37529
  }, []);
37448
- (0, import_react46.useEffect)(() => {
37530
+ (0, import_react47.useEffect)(() => {
37449
37531
  importTests();
37450
37532
  }, []);
37451
- (0, import_react46.useEffect)(() => {
37533
+ (0, import_react47.useEffect)(() => {
37452
37534
  const collateResults = async () => {
37453
37535
  console.log("collating", tests, features);
37454
37536
  const r = tests.tests.reduce(async (p, test) => {
@@ -37465,10 +37547,9 @@
37465
37547
  };
37466
37548
  collateResults();
37467
37549
  }, []);
37468
- console.log("state.results", state.results);
37469
- return /* @__PURE__ */ import_react46.default.createElement("div", null, /* @__PURE__ */ import_react46.default.createElement("style", null, `
37550
+ return /* @__PURE__ */ import_react47.default.createElement("div", null, /* @__PURE__ */ import_react47.default.createElement("style", null, `
37470
37551
  pre, code, p {
37471
- max-width: 30rem;
37552
+ max-width: 40rem;
37472
37553
  text-wrap: auto;
37473
37554
  }
37474
37555
  footer {
@@ -37479,25 +37560,25 @@ footer {
37479
37560
  bottom: 0;
37480
37561
  right: 0;
37481
37562
  }
37482
- `), features && tests && /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "config" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "config", title: "config" }, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(state, null, 2))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "results", title: "results" }, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(state.results, null, 2))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "features", title: "features" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" }, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, Object.keys(features.features).map((featureKey, ndx) => /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Item, { key: ndx }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `feature-${ndx}` }, featureKey))))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, Object.keys(features.features).map(
37563
+ `), features && tests && /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "manual" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "manual", title: "manual" }, /* @__PURE__ */ import_react47.default.createElement("article", null, /* @__PURE__ */ import_react47.default.createElement("h1", null, "Testeranto"), /* @__PURE__ */ import_react47.default.createElement("h2", null, "What is testeranto?"), /* @__PURE__ */ import_react47.default.createElement("p", null, "Testeranto is a novel testing framework for typescript project. Inspired by Behavior Driven Development, testeranto allows you to wrap you typescript with gherkin-like semantics, producing a report in the form of a static website. Testeranto runs it's tests both in node and chromium."))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "config", title: "config" }, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(state, null, 2))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "results", title: "results" }, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(state.results, null, 2))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "features", title: "features" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" }, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, Object.keys(features.features).map((featureKey, ndx) => /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Item, { key: ndx }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Link, { eventKey: `feature-${ndx}` }, featureKey))))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, Object.keys(features.features).map(
37483
37564
  (featureKey, ndx) => {
37484
37565
  const feature = features[featureKey];
37485
- return /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `feature-${ndx}`, key: ndx }, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(feature, null, 2)));
37566
+ return /* @__PURE__ */ import_react47.default.createElement(Tab_default.Pane, { eventKey: `feature-${ndx}`, key: ndx }, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(feature, null, 2)));
37486
37567
  }
37487
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "feature.networks" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.networks", title: "networks" }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.dags, null, 2)))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.directed, null, 2)))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.undirected, null, 2)))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "networks", title: "networks" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Container, { id: "left-tabs-example88", defaultActiveKey: `dag` }, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.dags.map(
37488
- (g, ndx2) => /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `networks-dags-${ndx2}` }, g.name))
37489
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, features.graphs.dags[0] && /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, /* @__PURE__ */ import_react46.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.dags[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react46.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react46.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.dags[0].graph, null, 2))))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.directed.map(
37490
- (g, ndx2) => /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `networks-directed-${ndx2}` }, g.name))
37491
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, features.graphs.directed[0] && /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, /* @__PURE__ */ import_react46.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.directed[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react46.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react46.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.directed[0].graph, null, 2))))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.undirected.map(
37492
- (g, ndx2) => /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `networks-undirected-${ndx2}` }, g.name))
37493
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, features.graphs.undirected[0] && /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, /* @__PURE__ */ import_react46.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.undirected[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react46.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react46.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.undirected[0].graph, null, 2))))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "tests", title: "tests" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" }, /* @__PURE__ */ import_react46.default.createElement(Row_default, null, /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, tests.tests.map(
37494
- (t, ndx) => /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Item, { key: ndx }, /* @__PURE__ */ import_react46.default.createElement(Nav_default2.Link, { eventKey: `test-${ndx}` }, t[0], " - ", t[1]))
37495
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, tests.tests.map(
37496
- (t, ndx) => /* @__PURE__ */ import_react46.default.createElement(Tab_default.Pane, { eventKey: `test-${ndx}` }, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(Object.entries(state.results).filter(([k, v]) => {
37568
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "feature.networks" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.networks", title: "networks" }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.dags, null, 2)))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.directed, null, 2)))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.undirected, null, 2)))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "networks", title: "networks" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Container, { id: "left-tabs-example88", defaultActiveKey: `dag` }, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.dags.map(
37569
+ (g, ndx2) => /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Link, { eventKey: `networks-dags-${ndx2}` }, g.name))
37570
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, features.graphs.dags[0] && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.dags[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react47.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react47.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.dags[0].graph, null, 2))))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.directed.map(
37571
+ (g, ndx2) => /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Link, { eventKey: `networks-directed-${ndx2}` }, g.name))
37572
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, features.graphs.directed[0] && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.directed[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react47.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react47.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.directed[0].graph, null, 2))))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, features.graphs.undirected.map(
37573
+ (g, ndx2) => /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Item, { key: ndx2 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Link, { eventKey: `networks-undirected-${ndx2}` }, g.name))
37574
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 6 }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, features.graphs.undirected[0] && /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(Sigma_default, { graph: graphToIGraphData(features.graphs.undirected[0].graph), settings: { drawEdges: true, clone: false } }, /* @__PURE__ */ import_react47.default.createElement(RelativeSize_default, { initialSize: 25 }), /* @__PURE__ */ import_react47.default.createElement(RandomizeNodePositions_default, null)), /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.undirected[0].graph, null, 2))))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "networks.features" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "networks.features", title: "features" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.tests", title: "tests" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(tests.tests, null, 2)))))))))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "tests", title: "tests" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Container, { id: "left-tabs-example5", defaultActiveKey: "feature-0" }, /* @__PURE__ */ import_react47.default.createElement(Row_default, null, /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2, { variant: "pills", className: "flex-column" }, tests.tests.map(
37575
+ (t, ndx) => /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Item, { key: ndx }, /* @__PURE__ */ import_react47.default.createElement(Nav_default2.Link, { eventKey: `test-${ndx}` }, t[0], " - ", t[1]))
37576
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, tests.tests.map(
37577
+ (t, ndx) => /* @__PURE__ */ import_react47.default.createElement(Tab_default.Pane, { eventKey: `test-${ndx}` }, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(Object.entries(state.results).filter(([k, v]) => {
37497
37578
  console.log(v.src, tests.tests[ndx][0]);
37498
37579
  return v.src === tests.tests[ndx][0];
37499
37580
  }), null, 2)))
37500
- ))), /* @__PURE__ */ import_react46.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "feature.networks" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "feature.networks", title: "networks" }, /* @__PURE__ */ import_react46.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.dags, null, 2)))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.directed, null, 2)))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react46.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react46.default.createElement("pre", null, JSON.stringify(features.graphs.undirected, null, 2)))))), /* @__PURE__ */ import_react46.default.createElement(Tab_default, { eventKey: "tests.features", title: "features" }, /* @__PURE__ */ import_react46.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2))))))))), /* @__PURE__ */ import_react46.default.createElement("footer", null, "made with \u2764\uFE0F and ", /* @__PURE__ */ import_react46.default.createElement("a", { href: "https://adamwong246.github.io/testeranto/" }, "testeranto ")));
37581
+ ))), /* @__PURE__ */ import_react47.default.createElement(Col_default, { sm: 4 }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "feature.networks" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "feature.networks", title: "networks" }, /* @__PURE__ */ import_react47.default.createElement(Tabs_default2, { defaultActiveKey: "dag" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "dag", title: "DAG" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.dags, null, 2)))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "directed", title: "Directed" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.directed, null, 2)))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "undirected", title: "Undirected" }, /* @__PURE__ */ import_react47.default.createElement(Tab_default.Content, null, /* @__PURE__ */ import_react47.default.createElement("pre", null, JSON.stringify(features.graphs.undirected, null, 2)))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "tests.features", title: "features" }, /* @__PURE__ */ import_react47.default.createElement("pre", { id: "theProps" }, JSON.stringify(features, null, 2)))))))), /* @__PURE__ */ import_react47.default.createElement(Tab_default, { eventKey: "examples", title: "examples" }, /* @__PURE__ */ import_react47.default.createElement(ExampleTab_default, null))), /* @__PURE__ */ import_react47.default.createElement("footer", null, "made with \u2764\uFE0F and ", /* @__PURE__ */ import_react47.default.createElement("a", { href: "https://adamwong246.github.io/testeranto/" }, "testeranto ")));
37501
37582
  };
37502
37583
  })();
37503
37584
  /*! Bundled license information:
@@ -0,0 +1,180 @@
1
+ // src/TaskManBackEnd.ts
2
+ import express from "express";
3
+ import { MongoClient } from "mongodb";
4
+ import mongoose2 from "mongoose";
5
+ import path from "path";
6
+ import fs from "fs";
7
+
8
+ // src/mongooseSchemas.ts
9
+ import mongoose from "mongoose";
10
+ var userSchema = new mongoose.Schema({
11
+ email: String,
12
+ channels: [{ type: mongoose.Schema.Types.ObjectId, ref: "Channel" }],
13
+ dmgroups: [{ type: mongoose.Schema.Types.ObjectId, ref: "Dmgroup" }]
14
+ });
15
+ userSchema.virtual("features", {
16
+ ref: "Feature",
17
+ localField: "_id",
18
+ foreignField: "owner"
19
+ });
20
+ var kanbanSchema = new mongoose.Schema({
21
+ title: String
22
+ });
23
+ var ganttSchema = new mongoose.Schema({
24
+ name: String,
25
+ type: String,
26
+ start: Date,
27
+ end: Date
28
+ });
29
+ var featuresSchema = new mongoose.Schema({
30
+ title: String,
31
+ state: String
32
+ });
33
+ var channelsFeature = new mongoose.Schema({});
34
+ var chatCatMessageSchema = new mongoose.Schema({
35
+ user: {
36
+ type: mongoose.Schema.Types.ObjectId,
37
+ ref: "User",
38
+ required: true
39
+ },
40
+ room: {
41
+ type: mongoose.Schema.Types.ObjectId,
42
+ ref: "ChatCatRoom",
43
+ required: true,
44
+ maxlength: 100
45
+ },
46
+ timestamp: {
47
+ type: Date,
48
+ default: Date.now()
49
+ },
50
+ text: {
51
+ type: String,
52
+ maxlength: 1e3
53
+ }
54
+ });
55
+ var HuddleSchema = new mongoose.Schema({});
56
+ var RoomSchema = new mongoose.Schema({
57
+ name: { type: String, required: true }
58
+ });
59
+
60
+ // src/TaskManBackEnd.ts
61
+ var app = express();
62
+ var port = 3e3;
63
+ function findTextFiles(dir, fileList = []) {
64
+ const files = fs.readdirSync(dir);
65
+ for (const file of files) {
66
+ const filePath = path.join(dir, file);
67
+ const fileStat = fs.statSync(filePath);
68
+ if (fileStat.isDirectory() && file !== "node_modules") {
69
+ findTextFiles(filePath, fileList);
70
+ } else if (path.extname(file) === ".txt") {
71
+ fileList.push(filePath);
72
+ } else if (path.extname(file) === ".md") {
73
+ fileList.push(filePath);
74
+ }
75
+ }
76
+ return fileList;
77
+ }
78
+ function listToTree(fileList) {
79
+ const root = {
80
+ name: "root",
81
+ children: []
82
+ };
83
+ for (const path2 of fileList) {
84
+ const parts = path2.split("/");
85
+ let current = root;
86
+ for (let i = 0; i < parts.length; i++) {
87
+ const part = parts[i];
88
+ if (!part)
89
+ continue;
90
+ let child = current.children.find((c) => c.name === part);
91
+ if (!child) {
92
+ child = { name: part, children: [] };
93
+ current.children.push(child);
94
+ }
95
+ current = child;
96
+ }
97
+ }
98
+ return root.children;
99
+ }
100
+ new MongoClient(`mongodb://${process.env.MONGO_HOST || "127.0.0.1"}:27017`).connect().then(async (conn) => {
101
+ const db = conn.db("taskman");
102
+ await mongoose2.connect(
103
+ `mongodb://${process.env.MONGO_HOST || "127.0.0.1"}:27017/taskman`
104
+ );
105
+ const usersModel = mongoose2.model("User", userSchema);
106
+ const kanbanModel = mongoose2.model("Kanban", kanbanSchema);
107
+ const ganttModel = mongoose2.model("Gantt", ganttSchema);
108
+ const featuresModel = mongoose2.model("Features", featuresSchema);
109
+ const MessagesModel = mongoose2.model("Messages", chatCatMessageSchema);
110
+ const ChatChannel = mongoose2.model("ChatChannel", channelsFeature);
111
+ const huddleModdle = ChatChannel.discriminator("Huddle", HuddleSchema);
112
+ const roomsModel = ChatChannel.discriminator("Room", RoomSchema);
113
+ app.get("/TaskManFrontend.js", (req, res) => {
114
+ res.sendFile(`${process.cwd()}/dist/prebuild/TaskManFrontEnd.js`);
115
+ });
116
+ app.get("/TaskManFrontEnd.css", (req, res) => {
117
+ res.sendFile(`${process.cwd()}/dist/prebuild/TaskManFrontEnd.css`);
118
+ });
119
+ app.get("/testeranto.json", (req, res) => {
120
+ res.sendFile(`${process.cwd()}/docs/testeranto.json`);
121
+ });
122
+ app.get("/", (req, res) => {
123
+ res.send(`<!DOCTYPE html>
124
+ <html lang="en">
125
+
126
+ <head>
127
+ <meta name="description" content="Webpage description goes here" />
128
+ <meta charset="utf-8" />
129
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
130
+ <meta name="author" content="" />
131
+
132
+ <title>TaskMan</title>
133
+
134
+ <link rel="stylesheet" href="/TaskManFrontEnd.css" />
135
+ <script type="module" src="/TaskManFrontEnd.js"></script>
136
+ </head>
137
+
138
+ <body><div id="root">react is loading</div></body>
139
+
140
+ </html>`);
141
+ });
142
+ app.listen(port, () => {
143
+ console.log(`Example app listening on port ${port}`);
144
+ });
145
+ const keyedModels = {
146
+ users: usersModel,
147
+ kanbans: kanbanModel,
148
+ features: featuresModel,
149
+ gantts: ganttModel,
150
+ rooms: roomsModel,
151
+ huddles: huddleModdle,
152
+ messages: MessagesModel
153
+ };
154
+ Object.keys(keyedModels).forEach((key) => {
155
+ app.get(`/${key}.json`, async (req, res) => {
156
+ console.log("GET", key, keyedModels[key]);
157
+ res.json(await keyedModels[key].find({}));
158
+ });
159
+ app.get(`/${key}/:id.json`, async (req, res) => {
160
+ res.json(
161
+ await keyedModels[key].find({ id: { $eq: req.params["id"] } }).toArray()
162
+ );
163
+ });
164
+ app.post(`/${key}/:id.json`, async (req, res) => {
165
+ res.json(
166
+ await keyedModels[key].find({ id: { $eq: req.params["id"] } }).toArray()
167
+ );
168
+ });
169
+ app.post(`/${key}.json`, async (req, res) => {
170
+ res.json(
171
+ await keyedModels[key].find({ id: { $eq: req.params["id"] } }).toArray()
172
+ );
173
+ });
174
+ });
175
+ app.use("/docs", express.static(path.join(process.cwd(), "docs")));
176
+ app.get("/docGal/fs.json", (req, res) => {
177
+ const directoryPath = "./";
178
+ res.json(listToTree(findTextFiles(directoryPath)));
179
+ });
180
+ });