testeranto 0.75.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.
- package/README.md +25 -24
- package/devBot.dockerfile +12 -0
- package/dist/common/Node.js +1 -0
- package/dist/common/PM/index.js +0 -64
- package/dist/common/PM/main.js +278 -7
- package/dist/common/PM/node.js +4 -0
- package/dist/common/PM/web.js +3 -0
- package/dist/common/Project.js +6 -2
- package/dist/common/Puppeteer.js +12 -17
- package/dist/common/Reporter.js +1 -8
- package/dist/common/SubPackages/react-dom/component/web.js +5 -25
- package/dist/common/SubPackages/react-dom/jsx/web.js +80 -55
- package/dist/common/SubPackages/react-test-renderer/component/index.js +0 -86
- package/dist/common/SubPackages/react-test-renderer/component/interface.js +68 -0
- package/dist/common/SubPackages/react-test-renderer/component/node.js +2 -2
- package/dist/common/SubPackages/react-test-renderer/component/web.js +2 -2
- package/dist/common/TaskManBackEnd.js +156 -0
- package/dist/common/Types.js +0 -2
- package/dist/common/esbuildConfigs/index.js +1 -0
- package/dist/common/esbuildConfigs/inputFilesPlugin.js +49 -0
- package/dist/common/esbuildConfigs/node.js +3 -1
- package/dist/common/esbuildConfigs/web.js +3 -1
- package/dist/common/lib/abstractBase.js +222 -17
- package/dist/common/lib/basebuilder.js +4 -38
- package/dist/common/lib/classBuilder.js +1 -3
- package/dist/common/lib/core.js +3 -5
- package/dist/common/mongooseSchemas.js +56 -0
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/common/utils.js +16 -0
- package/dist/module/ExampleTab.js +112 -0
- package/dist/module/Node.js +1 -0
- package/dist/module/PM/index.js +0 -64
- package/dist/module/PM/main.js +278 -7
- package/dist/module/PM/node.js +4 -0
- package/dist/module/PM/web.js +3 -0
- package/dist/module/Project.js +6 -2
- package/dist/module/Puppeteer.js +12 -17
- package/dist/module/Reporter.js +1 -8
- package/dist/module/SubPackages/react-dom/component/web.js +5 -25
- package/dist/module/SubPackages/react-dom/jsx/web.js +80 -55
- package/dist/module/SubPackages/react-test-renderer/component/index.js +1 -59
- package/dist/module/SubPackages/react-test-renderer/component/interface.js +39 -0
- package/dist/module/SubPackages/react-test-renderer/component/node.js +1 -1
- package/dist/module/SubPackages/react-test-renderer/component/web.js +1 -1
- package/dist/module/TaskManBackEnd.js +151 -0
- package/dist/module/TaskManFrontEnd.js +600 -0
- package/dist/module/Types.js +0 -2
- package/dist/module/esbuildConfigs/index.js +1 -0
- package/dist/module/esbuildConfigs/inputFilesPlugin.js +44 -0
- package/dist/module/esbuildConfigs/node.js +3 -1
- package/dist/module/esbuildConfigs/web.js +3 -1
- package/dist/module/lib/abstractBase.js +222 -17
- package/dist/module/lib/basebuilder.js +4 -38
- package/dist/module/lib/classBuilder.js +1 -3
- package/dist/module/lib/core.js +3 -5
- package/dist/module/mongooseSchemas.js +50 -0
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/module/utils.js +9 -0
- package/dist/prebuild/Report.js +117 -36
- package/dist/prebuild/TaskManBackEnd.mjs +185 -0
- package/dist/prebuild/TaskManFrontEnd.css +12301 -0
- package/dist/prebuild/TaskManFrontEnd.js +81737 -0
- package/dist/types/Node.d.ts +1 -1
- package/dist/types/PM/index.d.ts +2 -1
- package/dist/types/PM/main.d.ts +6 -3
- package/dist/types/PM/node.d.ts +2 -0
- package/dist/types/PM/web.d.ts +1 -0
- package/dist/types/SubPackages/puppeteer.d.ts +1 -1
- package/dist/types/SubPackages/react/component/node.d.ts +1 -1
- package/dist/types/SubPackages/react/component/web.d.ts +1 -1
- package/dist/types/SubPackages/react/jsx/node.d.ts +2 -2
- package/dist/types/SubPackages/react/jsx/web.d.ts +2 -2
- package/dist/types/SubPackages/react-dom/component/node.d.ts +2 -2
- package/dist/types/SubPackages/react-dom/component/web.d.ts +8 -2
- package/dist/types/SubPackages/react-dom/jsx/node.d.ts +2 -2
- package/dist/types/SubPackages/react-dom/jsx/web.d.ts +2 -2
- package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +2 -2
- package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +0 -7
- package/dist/types/SubPackages/react-test-renderer/component/interface.d.ts +9 -0
- package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +1 -2
- package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +1 -2
- package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +1 -1
- package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +1 -1
- package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +1 -2
- package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +1 -2
- package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +1 -2
- package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +1 -2
- package/dist/types/TaskManBackEnd.d.ts +1 -0
- package/dist/types/Types.d.ts +19 -19
- package/dist/types/Web.d.ts +1 -1
- package/dist/types/esbuildConfigs/inputFilesPlugin.d.ts +5 -0
- package/dist/types/lib/abstractBase.d.ts +8 -8
- package/dist/types/lib/basebuilder.d.ts +1 -1
- package/dist/types/lib/classBuilder.d.ts +1 -1
- package/dist/types/lib/core.d.ts +1 -1
- package/dist/types/lib/index.d.ts +5 -5
- package/dist/types/lib/types.d.ts +15 -13
- package/dist/types/mongooseSchemas.d.ts +124 -0
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/utils.d.ts +2 -0
- package/docker-compose-dev.yml +9 -0
- package/docker-compose-prod.yml +18 -0
- package/package.json +20 -7
- package/src/ExampleTab.tsx +219 -0
- package/src/Node.ts +31 -2
- package/src/PM/index.ts +6 -83
- package/src/PM/main.ts +389 -11
- package/src/PM/node.ts +6 -0
- package/src/PM/web.ts +4 -0
- package/src/Project.ts +10 -2
- package/src/Puppeteer.ts +16 -17
- package/src/Report.tsx +17 -40
- package/src/Reporter.ts +1 -9
- package/src/SubPackages/react-dom/component/web.ts +10 -30
- package/src/SubPackages/react-dom/jsx/web.ts +111 -74
- package/src/SubPackages/react-test-renderer/component/index.ts +0 -66
- package/src/SubPackages/react-test-renderer/component/interface.ts +48 -0
- package/src/SubPackages/react-test-renderer/component/node.ts +2 -1
- package/src/SubPackages/react-test-renderer/component/web.ts +2 -1
- package/src/TaskManBackEnd.ts +200 -0
- package/src/TaskManFrontEnd.tsx +1222 -0
- package/src/Types.ts +136 -28
- package/src/Web.ts +32 -2
- package/src/esbuildConfigs/index.ts +1 -0
- package/src/esbuildConfigs/inputFilesPlugin.ts +65 -0
- package/src/esbuildConfigs/node.ts +3 -1
- package/src/esbuildConfigs/web.ts +4 -0
- package/src/lib/abstractBase.ts +337 -34
- package/src/lib/basebuilder.ts +17 -52
- package/src/lib/classBuilder.ts +14 -2
- package/src/lib/core.ts +18 -7
- package/src/lib/index.ts +115 -7
- package/src/lib/types.ts +143 -35
- package/src/mongooseSchemas.ts +105 -0
- package/src/utils.ts +15 -0
- package/yarn-error.log +3144 -0
package/dist/prebuild/Report.js
CHANGED
|
@@ -1092,7 +1092,7 @@
|
|
|
1092
1092
|
}
|
|
1093
1093
|
return dispatcher.useContext(Context);
|
|
1094
1094
|
}
|
|
1095
|
-
function
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
2393
|
+
var React45 = require_react();
|
|
2394
2394
|
var Scheduler = require_scheduler();
|
|
2395
|
-
var ReactSharedInternals =
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
|
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(
|
|
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,
|
|
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,
|
|
37484
|
+
const [tests, setTests] = (0, import_react47.useState)({
|
|
37402
37485
|
tests: [],
|
|
37403
37486
|
buildDir: ""
|
|
37404
37487
|
});
|
|
37405
|
-
const [features, setFeatures] = (0,
|
|
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,
|
|
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,
|
|
37524
|
+
(0, import_react47.useEffect)(() => {
|
|
37443
37525
|
importState();
|
|
37444
37526
|
}, []);
|
|
37445
|
-
(0,
|
|
37527
|
+
(0, import_react47.useEffect)(() => {
|
|
37446
37528
|
importFeatures();
|
|
37447
37529
|
}, []);
|
|
37448
|
-
(0,
|
|
37530
|
+
(0, import_react47.useEffect)(() => {
|
|
37449
37531
|
importTests();
|
|
37450
37532
|
}, []);
|
|
37451
|
-
(0,
|
|
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
|
-
|
|
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:
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
37488
|
-
(g, ndx2) => /* @__PURE__ */
|
|
37489
|
-
))), /* @__PURE__ */
|
|
37490
|
-
(g, ndx2) => /* @__PURE__ */
|
|
37491
|
-
))), /* @__PURE__ */
|
|
37492
|
-
(g, ndx2) => /* @__PURE__ */
|
|
37493
|
-
))), /* @__PURE__ */
|
|
37494
|
-
(t, ndx) => /* @__PURE__ */
|
|
37495
|
-
))), /* @__PURE__ */
|
|
37496
|
-
(t, ndx) => /* @__PURE__ */
|
|
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__ */
|
|
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,185 @@
|
|
|
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://localhost:27017`).connect().then(async (conn) => {
|
|
101
|
+
const db = conn.db("taskman");
|
|
102
|
+
await mongoose2.connect("mongodb://127.0.0.1:27017/taskman");
|
|
103
|
+
const usersModel = mongoose2.model("User", userSchema);
|
|
104
|
+
const kanbanModel = mongoose2.model("Kanban", kanbanSchema);
|
|
105
|
+
const ganttModel = mongoose2.model("Gantt", ganttSchema);
|
|
106
|
+
const featuresModel = mongoose2.model("Features", featuresSchema);
|
|
107
|
+
const MessagesModel = mongoose2.model("Messages", chatCatMessageSchema);
|
|
108
|
+
const ChatChannel = mongoose2.model("ChatChannel", channelsFeature);
|
|
109
|
+
const huddleModdle = ChatChannel.discriminator("Huddle", HuddleSchema);
|
|
110
|
+
const roomsModel = ChatChannel.discriminator("Room", RoomSchema);
|
|
111
|
+
app.get(`/preMergeCheck`, async (req, res) => {
|
|
112
|
+
const commit = req.params["commit"];
|
|
113
|
+
});
|
|
114
|
+
app.get("/TaskManFrontend.js", (req, res) => {
|
|
115
|
+
res.sendFile(
|
|
116
|
+
`${process.cwd()}/node_modules/testeranto/dist/prebuild/TaskManFrontEnd.js`
|
|
117
|
+
);
|
|
118
|
+
});
|
|
119
|
+
app.get("/TaskManFrontEnd.css", (req, res) => {
|
|
120
|
+
res.sendFile(
|
|
121
|
+
`${process.cwd()}/node_modules/testeranto/dist/prebuild/TaskManFrontEnd.css`
|
|
122
|
+
);
|
|
123
|
+
});
|
|
124
|
+
app.get("/testeranto.json", (req, res) => {
|
|
125
|
+
res.sendFile(`${process.cwd()}/docs/testeranto.json`);
|
|
126
|
+
});
|
|
127
|
+
app.get("/", (req, res) => {
|
|
128
|
+
res.send(`<!DOCTYPE html>
|
|
129
|
+
<html lang="en">
|
|
130
|
+
|
|
131
|
+
<head>
|
|
132
|
+
<meta name="description" content="Webpage description goes here" />
|
|
133
|
+
<meta charset="utf-8" />
|
|
134
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
135
|
+
<meta name="author" content="" />
|
|
136
|
+
|
|
137
|
+
<title>TaskMan</title>
|
|
138
|
+
|
|
139
|
+
<link rel="stylesheet" href="/TaskManFrontEnd.css" />
|
|
140
|
+
<script type="module" src="/TaskManFrontEnd.js"></script>
|
|
141
|
+
</head>
|
|
142
|
+
|
|
143
|
+
<body><div id="root">react is loading</div></body>
|
|
144
|
+
|
|
145
|
+
</html>`);
|
|
146
|
+
});
|
|
147
|
+
app.listen(port, () => {
|
|
148
|
+
console.log(`Example app listening on port ${port}`);
|
|
149
|
+
});
|
|
150
|
+
const keyedModels = {
|
|
151
|
+
users: usersModel,
|
|
152
|
+
kanbans: kanbanModel,
|
|
153
|
+
features: featuresModel,
|
|
154
|
+
gantts: ganttModel,
|
|
155
|
+
rooms: roomsModel,
|
|
156
|
+
huddles: huddleModdle,
|
|
157
|
+
messages: MessagesModel
|
|
158
|
+
};
|
|
159
|
+
Object.keys(keyedModels).forEach((key) => {
|
|
160
|
+
app.get(`/${key}.json`, async (req, res) => {
|
|
161
|
+
console.log("GET", key, keyedModels[key]);
|
|
162
|
+
res.json(await keyedModels[key].find({}));
|
|
163
|
+
});
|
|
164
|
+
app.get(`/${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}/:id.json`, async (req, res) => {
|
|
170
|
+
res.json(
|
|
171
|
+
await keyedModels[key].find({ id: { $eq: req.params["id"] } }).toArray()
|
|
172
|
+
);
|
|
173
|
+
});
|
|
174
|
+
app.post(`/${key}.json`, async (req, res) => {
|
|
175
|
+
res.json(
|
|
176
|
+
await keyedModels[key].find({ id: { $eq: req.params["id"] } }).toArray()
|
|
177
|
+
);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
app.use("/docs", express.static(path.join(process.cwd(), "docs")));
|
|
181
|
+
app.get("/docGal/fs.json", (req, res) => {
|
|
182
|
+
const directoryPath = "./";
|
|
183
|
+
res.json(listToTree(findTextFiles(directoryPath)));
|
|
184
|
+
});
|
|
185
|
+
});
|