systemview 1.7.5 → 1.8.5
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/api/Connections.js +9 -2
- package/api/connections.txt +1 -1
- package/api/index.js +14 -9
- package/build/asset-manifest.json +12 -12
- package/build/index.html +1 -1
- package/build/static/js/2.e13c4e0b.chunk.js +3 -0
- package/build/static/js/{2.b89d4ccd.chunk.js.map → 2.e13c4e0b.chunk.js.map} +1 -1
- package/build/static/js/{3.0571e5a9.chunk.js → 3.ab14a34d.chunk.js} +2 -2
- package/build/static/js/{3.0571e5a9.chunk.js.map → 3.ab14a34d.chunk.js.map} +1 -1
- package/build/static/js/main.57223d60.chunk.js +2 -0
- package/build/static/js/main.57223d60.chunk.js.map +1 -0
- package/build/static/js/{runtime-main.17d324d3.js → runtime-main.d7b7e2a1.js} +2 -2
- package/build/static/js/{runtime-main.17d324d3.js.map → runtime-main.d7b7e2a1.js.map} +1 -1
- package/cli/appIsRunning.js +6 -19
- package/cli/index.js +53 -40
- package/cli/launchApp.js +1 -2
- package/cli/runTests.js +30 -26
- package/cli/temp.md +5 -0
- package/package.json +3 -3
- package/testing-utilities/.DS_Store +0 -0
- package/testing-utilities/Test.class.js +1 -0
- package/testing-utilities/validtionMessages.js +1 -1
- package/README.old.md +0 -1
- package/build/static/js/2.b89d4ccd.chunk.js +0 -3
- package/build/static/js/main.6f3c8138.chunk.js +0 -2
- package/build/static/js/main.6f3c8138.chunk.js.map +0 -1
- package/server.js +0 -19
- /package/build/static/js/{2.b89d4ccd.chunk.js.LICENSE.txt → 2.e13c4e0b.chunk.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e){function t(t){for(var n,i,a=t[0],c=t[1],l=t[2],f=0,p=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"
|
|
2
|
-
//# sourceMappingURL=runtime-main.
|
|
1
|
+
!function(e){function t(t){for(var n,i,a=t[0],c=t[1],l=t[2],f=0,p=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"ab14a34d"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){a.onerror=a.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpsystemview=this.webpackJsonpsystemview||[],c=a.push.bind(a);a.push=t,a=a.slice();for(var l=0;l<a.length;l++)t(a[l]);var s=c;r()}([]);
|
|
2
|
+
//# sourceMappingURL=runtime-main.d7b7e2a1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.17d324d3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"0571e5a9\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonpsystemview\"] = this[\"webpackJsonpsystemview\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.d7b7e2a1.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"ab14a34d\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonpsystemview\"] = this[\"webpackJsonpsystemview\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
|
package/cli/appIsRunning.js
CHANGED
|
@@ -1,24 +1,11 @@
|
|
|
1
1
|
const http = require("http");
|
|
2
|
+
const { HttpClient } = require("systemlynx");
|
|
2
3
|
|
|
3
|
-
module.exports = async function appIsRunning(
|
|
4
|
-
let allAppsRunning = true;
|
|
5
|
-
const pingApps = appUrls.map(
|
|
6
|
-
(url) =>
|
|
7
|
-
new Promise((resolve, reject) => {
|
|
8
|
-
http.get(url, resolve).on("error", reject);
|
|
9
|
-
})
|
|
10
|
-
);
|
|
4
|
+
module.exports = async function appIsRunning(url) {
|
|
11
5
|
try {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
console.log(`App ${appUrls[index]} is not running`);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
} catch (err) {
|
|
20
|
-
allAppsRunning = false;
|
|
6
|
+
const res = await HttpClient.request({ url });
|
|
7
|
+
return res.SystemLynxService;
|
|
8
|
+
} catch (error) {
|
|
9
|
+
return false;
|
|
21
10
|
}
|
|
22
|
-
|
|
23
|
-
return allAppsRunning;
|
|
24
11
|
};
|
package/cli/index.js
CHANGED
|
@@ -15,66 +15,79 @@ const launchApp = require("./launchApp");
|
|
|
15
15
|
const runTests = require("./runTests");
|
|
16
16
|
const appIsRunning = require("./appIsRunning");
|
|
17
17
|
const { HttpClient } = require("systemlynx");
|
|
18
|
+
const startLineReader = require("./startLineReader");
|
|
18
19
|
|
|
19
20
|
const input = cli.input;
|
|
20
21
|
const flags = cli.flags;
|
|
21
22
|
const { clear, debug } = flags;
|
|
22
23
|
const DEFAULT_PORT = 3000;
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
|
|
25
|
+
async function startApp(input = []) {
|
|
26
|
+
const port = isNaN(input[1]) ? DEFAULT_PORT : input[1];
|
|
27
|
+
const api = `http://localhost:${port}/systemview/api`;
|
|
25
28
|
try {
|
|
26
29
|
await launchApp(port);
|
|
30
|
+
return startLineReader(api);
|
|
27
31
|
} catch (error) {
|
|
28
32
|
log("Launch failed:" + error.message, "error");
|
|
33
|
+
console.log(error);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function startTest(input = []) {
|
|
38
|
+
const api = `http://localhost:${DEFAULT_PORT}/systemview/api`;
|
|
39
|
+
input.shift();
|
|
40
|
+
try {
|
|
41
|
+
const lineReader = await startApp();
|
|
42
|
+
setTimeout(async () => {
|
|
43
|
+
await runTests(api, ...input);
|
|
44
|
+
lineReader.prompt();
|
|
45
|
+
}, 0);
|
|
46
|
+
} catch (error) {
|
|
47
|
+
console.error("Error executing tests:", error.message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async function quitApp(input = []) {
|
|
52
|
+
const port = isNaN(input[1]) ? DEFAULT_PORT : input[1];
|
|
53
|
+
const api = `http://localhost:${port}/systemview/api`;
|
|
54
|
+
|
|
55
|
+
if (await appIsRunning(api)) {
|
|
56
|
+
log("SystemView is running from another terminal", "info", "info");
|
|
57
|
+
log("Attempting remote shutdown...", "info", "info");
|
|
58
|
+
|
|
59
|
+
const url = `${api}/SystemView/shutdown`;
|
|
60
|
+
const method = "put";
|
|
61
|
+
HttpClient.request({ url, method })
|
|
62
|
+
.then(() => console.log("SystemView shutdown successful!"))
|
|
63
|
+
.catch(async (error) => {
|
|
64
|
+
if (await appIsRunning(api)) {
|
|
65
|
+
log("Remote shutdown failed!", "error", "error");
|
|
66
|
+
console.error(error);
|
|
67
|
+
} else {
|
|
68
|
+
console.log("SystemView shutdown successful!");
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
} else {
|
|
72
|
+
log(`SystemView instance not found @${api}`, "warning", "warning");
|
|
73
|
+
console.log("Please include the port if default port is not being used:");
|
|
74
|
+
log("systemview shutdown 4000", "info", "example");
|
|
29
75
|
}
|
|
30
76
|
}
|
|
77
|
+
|
|
31
78
|
(async () => {
|
|
32
79
|
init({ clear });
|
|
33
80
|
if (input.includes(`help`)) {
|
|
34
81
|
cli.showHelp(0);
|
|
35
82
|
} else if (input.includes("test")) {
|
|
36
|
-
|
|
37
|
-
try {
|
|
38
|
-
input.shift();
|
|
39
|
-
if (await appIsRunning([api])) {
|
|
40
|
-
await runTests(api, ...input);
|
|
41
|
-
process.exit();
|
|
42
|
-
} else {
|
|
43
|
-
await launch();
|
|
44
|
-
await runTests(api, ...input);
|
|
45
|
-
process.exit();
|
|
46
|
-
}
|
|
47
|
-
} catch (error) {
|
|
48
|
-
console.error("Error executing tests:", error.message);
|
|
49
|
-
}
|
|
83
|
+
startTest(input);
|
|
50
84
|
} else if (["exit", "q", "shutdown"].includes(input[0])) {
|
|
51
|
-
|
|
52
|
-
const api = `http://localhost:${port}/systemview/api`;
|
|
53
|
-
if (await appIsRunning([api])) {
|
|
54
|
-
const url = `${api}/SystemView/shutdown`;
|
|
55
|
-
const method = "put";
|
|
56
|
-
log("SystemView is running from another terminal", "info", "info");
|
|
57
|
-
log("Attempting remote shutdown...", "info", "info");
|
|
58
|
-
HttpClient.request({ url, method })
|
|
59
|
-
.then(() => console.log("SystemView shutdown successful!"))
|
|
60
|
-
.catch(async (error) => {
|
|
61
|
-
if (await appIsRunning([api])) {
|
|
62
|
-
log("Remote shutdown failed!", "error", "error");
|
|
63
|
-
} else {
|
|
64
|
-
console.log("SystemView shutdown successful!");
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
} else {
|
|
68
|
-
log(`SystemView instance not found @${api}`, "warning", "warning");
|
|
69
|
-
console.log("Please include the port if default port is not being used:");
|
|
70
|
-
log("systemview shutdown 4000", "info", "example");
|
|
71
|
-
}
|
|
85
|
+
quitApp(input);
|
|
72
86
|
} else if (input[0] === "start") {
|
|
73
|
-
|
|
87
|
+
startApp();
|
|
74
88
|
} else {
|
|
75
|
-
|
|
89
|
+
startApp();
|
|
76
90
|
}
|
|
77
|
-
|
|
78
91
|
cli.input = [];
|
|
79
92
|
debug && log(flags);
|
|
80
93
|
})();
|
package/cli/launchApp.js
CHANGED
|
@@ -10,13 +10,12 @@ function logConnection(api) {
|
|
|
10
10
|
}
|
|
11
11
|
module.exports = async function launchApp(port) {
|
|
12
12
|
const api = `http://localhost:${port}/systemview/api`;
|
|
13
|
-
if (await appIsRunning(
|
|
13
|
+
if (await appIsRunning(api)) {
|
|
14
14
|
log("SystemView is running from another terminal", "info", "info");
|
|
15
15
|
logConnection(api);
|
|
16
16
|
} else {
|
|
17
17
|
log("Launching...");
|
|
18
18
|
await launchSystemView(port);
|
|
19
19
|
logConnection(api);
|
|
20
|
-
startLineReader(api);
|
|
21
20
|
}
|
|
22
21
|
};
|
package/cli/runTests.js
CHANGED
|
@@ -3,6 +3,8 @@ const { initializeSavedTests } = require("../testing-utilities/transformTests");
|
|
|
3
3
|
const FullTestController = require("../testing-utilities/FullTestController");
|
|
4
4
|
const log = require("./utils/log");
|
|
5
5
|
const validationMessages = require("../testing-utilities/validtionMessages");
|
|
6
|
+
const { runFullTest } = new FullTestController();
|
|
7
|
+
|
|
6
8
|
const PARTITION =
|
|
7
9
|
"-------------------------------------------------------------------------";
|
|
8
10
|
|
|
@@ -84,34 +86,21 @@ const Logger = function (trackTime) {
|
|
|
84
86
|
// }
|
|
85
87
|
};
|
|
86
88
|
};
|
|
87
|
-
|
|
88
|
-
const { runFullTest } = new FullTestController();
|
|
89
|
+
|
|
89
90
|
const runAllTests = async (savedTest, trackTime) => {
|
|
90
91
|
const runTest = async ({ Before, Main, Events, After }) => {
|
|
91
92
|
const fullTest = [Before, Main, Events, After];
|
|
92
|
-
|
|
93
|
-
const {
|
|
94
|
-
const {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
testSection.forEach(({ errors, results, namespace, title }, i) => {
|
|
104
|
-
const { serviceId, moduleName, methodName } = namespace;
|
|
105
|
-
log(title, "error", sections[i]);
|
|
106
|
-
console.log(`${serviceId}${moduleName}.${methodName}(..)`);
|
|
107
|
-
console.log(results);
|
|
108
|
-
errors.forEach((err) => console.log(validationMessages(err)));
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
} else {
|
|
112
|
-
log(title, "success", namespace.serviceId);
|
|
113
|
-
console.log(`---> ${serviceId}.${moduleName}.${methodName}(..)`);
|
|
114
|
-
}
|
|
93
|
+
await runFullTest(fullTest, new Logger(trackTime));
|
|
94
|
+
const { namespace } = Main[0];
|
|
95
|
+
const { moduleName, methodName } = namespace;
|
|
96
|
+
|
|
97
|
+
log(`Testing --> ${moduleName}.${methodName}(...)`, "info", namespace.serviceId);
|
|
98
|
+
console.log(PARTITION);
|
|
99
|
+
console.log(PARTITION);
|
|
100
|
+
logTestSection(Before, "Before");
|
|
101
|
+
logTestSection(Main, "Main", true);
|
|
102
|
+
logTestSection(Events, "Events");
|
|
103
|
+
logTestSection(After, "After");
|
|
115
104
|
};
|
|
116
105
|
|
|
117
106
|
await new Promise((resolve) => {
|
|
@@ -122,6 +111,21 @@ const runAllTests = async (savedTest, trackTime) => {
|
|
|
122
111
|
recursiveRunTest();
|
|
123
112
|
});
|
|
124
113
|
};
|
|
114
|
+
|
|
115
|
+
function logTestSection(tests, section, logSuccess = false) {
|
|
116
|
+
tests.forEach(({ errors, results, namespace, title, response_type }, i) => {
|
|
117
|
+
const { serviceId, moduleName, methodName } = namespace;
|
|
118
|
+
const LOG_TYPE = errors.length ? "error" : "success";
|
|
119
|
+
const LABEL = LOG_TYPE === "error" ? "FAILED" : "PASSED";
|
|
120
|
+
if (LOG_TYPE === "error" || logSuccess) {
|
|
121
|
+
log(title, "info", section + ":");
|
|
122
|
+
log(`${serviceId}.${moduleName}.${methodName}(...)`, LOG_TYPE, `${LABEL}`);
|
|
123
|
+
console.log(`${response_type}:`, results);
|
|
124
|
+
errors.forEach((err) => console.log(`-> ${validationMessages(err)}`));
|
|
125
|
+
console.log(PARTITION);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}
|
|
125
129
|
async function getTests(connectedServices) {
|
|
126
130
|
return await new Promise(async (resolve) => {
|
|
127
131
|
const results = [];
|
|
@@ -147,6 +151,6 @@ async function getConnectedServices(api, project_code) {
|
|
|
147
151
|
return await SystemView.getServices(project_code);
|
|
148
152
|
} catch (error) {}
|
|
149
153
|
} catch (error) {
|
|
150
|
-
console.log("Failed to connect to systemview");
|
|
154
|
+
console.log("Failed to connect to systemview", error);
|
|
151
155
|
}
|
|
152
156
|
}
|
package/cli/temp.md
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "systemview",
|
|
3
3
|
"description": "A documentation and testing suite for SystemLynx",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.5",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"bin": {
|
|
7
7
|
"systemview": "cli/index.js"
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"react-syntax-highlighter": "^15.5.0",
|
|
31
31
|
"readline": "^1.3.0",
|
|
32
32
|
"remark-gfm": "^3.0.1",
|
|
33
|
-
"systemlynx": "^1.9.
|
|
33
|
+
"systemlynx": "^1.9.5",
|
|
34
34
|
"web-vitals": "^0.2.4"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
|
-
"start": "nodemon
|
|
37
|
+
"start": "nodemon cli",
|
|
38
38
|
"build": "react-scripts build",
|
|
39
39
|
"test": "react-scripts test",
|
|
40
40
|
"eject": "react-scripts eject"
|
|
Binary file
|
|
@@ -100,6 +100,7 @@ module.exports = function Test({
|
|
|
100
100
|
const { connectionData } = service.system;
|
|
101
101
|
|
|
102
102
|
this.connection[serviceId] = Client.createService(connectionData);
|
|
103
|
+
this.connection[serviceId].setHeaders({ Origin: `http://localhost:${3000}` });
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
return this;
|
|
@@ -11,7 +11,7 @@ module.exports = function validationMessage({ name, namespace, expected, receive
|
|
|
11
11
|
const errorMessages = {
|
|
12
12
|
typeError: (namespace, expected, received) => {
|
|
13
13
|
const a = isVowel(expected) ? "an" : "a";
|
|
14
|
-
return `Expected ${namespace}to be ${a} ${expected}, received ${received}`;
|
|
14
|
+
return `Expected ${namespace} to be ${a} ${expected}, received ${received}`;
|
|
15
15
|
},
|
|
16
16
|
|
|
17
17
|
lengthEquals: (namespace, expected, received) =>
|
package/README.old.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# SystemView-f1
|