systemview 2.3.0 → 2.3.1

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.
@@ -1,5 +1,10 @@
1
1
  const fs = require("fs");
2
- const { Client } = require("systemlynx");
2
+ const { createClient } = require("systemlynx");
3
+ const { createCookieHttpClient } = require("../cli/cookieClient");
4
+ // Same manifest-header client as api/index.js and the CLI — so re-probing stored connections
5
+ // (refreshConnections) also carries operator-authored headers. A gated service would otherwise
6
+ // silently drop out of the UI on every refresh.
7
+ const Client = createClient(createCookieHttpClient());
3
8
  const LOCAL_STORAGE = `${__dirname}/connections.json`;
4
9
 
5
10
  function refreshConnections(connections) {
@@ -1 +1 @@
1
- ["test","test signUp","test systemview-test","list","help"]
1
+ ["test","test signUp","test systemview-test","help","connect https://ballersunited.global:4000/bu/api/media","list"]
@@ -1 +1 @@
1
- [{"projectCode":"systemview-test","serviceId":"TestService","system":{"connectionData":{"modules":[{"namespace":"ws://localhost:5555/test/api/Math","route":"/test/api/Math","name":"Math","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"subtract"},{"method":"post","fn":"multiply"},{"method":"post","fn":"divide"},{"method":"post","fn":"getItems"}]},{"namespace":"ws://localhost:5555/test/api/String","route":"/test/api/String","name":"String","methods":[{"method":"post","fn":"concat"},{"method":"post","fn":"repeat"},{"method":"post","fn":"toUpperCase"}]},{"namespace":"ws://localhost:5555/test/api/Auth","route":"/test/api/Auth","name":"Auth","methods":[{"method":"post","fn":"signIn"},{"method":"post","fn":"getSession"},{"method":"post","fn":"divideByZero"},{"method":"post","fn":"throwError"}]},{"namespace":"ws://localhost:5555/test/api/Headers","route":"/test/api/Headers","name":"Headers","methods":[{"method":"post","fn":"getOrigin"},{"method":"post","fn":"echo"}]},{"namespace":"ws://localhost:5555/test/api/CLI","route":"/test/api/CLI","name":"CLI","methods":[{"method":"post","fn":"run"},{"method":"post","fn":"probe"},{"method":"post","fn":"test"},{"method":"post","fn":"list"},{"method":"post","fn":"logs"}]},{"namespace":"ws://localhost:5555/test/api/SystemView","route":"/test/api/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://localhost:5555/test/api/Plugin","route":"/test/api/Plugin","name":"Plugin","methods":[{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"localhost","route":"/test/api","port":5555,"serviceUrl":"http://localhost:5555/test/api","socketPath":"/test/api/socket.io","namespace":"ws://localhost:5555/test/api","SystemLynxService":true},"modules":[{"name":"Math","__constructor":{},"module":{}},{"name":"String","__constructor":{},"module":{}},{"name":"Auth","__constructor":{"_lastCookie":""},"module":{}},{"name":"Headers","__constructor":{"_lastOrigin":"","_lastHeaders":{}},"module":{}},{"name":"CLI","__constructor":{},"module":{}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"test/api","port":5555},"services":[{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":[],"tests":["Auth.divideByZero.json","Auth.getSession.json","Auth.signIn.json","Auth.throwError.json","CLI.list.json","CLI.logs.json","CLI.probe.json","CLI.test.json","Headers.echo.json","Headers.getOrigin.json","Math.add.json","Math.divide.json","Math.list.json","Math.multiply.json","Math.subtract.json","String.concat.json","String.repeat.json","SystemView.getLog.json"]}},{"projectCode":"buAPI","serviceId":"Profiles","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Badges","route":"/bu/api/profiles/Badges","name":"Badges","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getDefinitions"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Locations","route":"/bu/api/profiles/Locations","name":"Locations","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"search"},{"method":"post","fn":"resolve"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Users","route":"/bu/api/profiles/Users","name":"Users","methods":[{"method":"post","fn":"signUp"},{"method":"post","fn":"signIn"},{"method":"post","fn":"signOut"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"quickSignUp"},{"method":"post","fn":"exists"},{"method":"post","fn":"isRecognized"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"setBadges"},{"method":"post","fn":"updateRealLocation"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Teams","route":"/bu/api/profiles/Teams","name":"Teams","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"setScope"},{"method":"post","fn":"removeScope"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Tournaments","route":"/bu/api/profiles/Tournaments","name":"Tournaments","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Groups","route":"/bu/api/profiles/Groups","name":"Groups","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"addTournament"},{"method":"post","fn":"removeTournament"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Events","route":"/bu/api/profiles/Events","name":"Events","methods":[{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"addTournament"},{"method":"post","fn":"removeTournament"},{"method":"post","fn":"addGroup"},{"method":"post","fn":"removeGroup"},{"method":"post","fn":"registerSeason"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Follows","route":"/bu/api/profiles/Follows","name":"Follows","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"addMulti"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"delete"},{"method":"post","fn":"deleteMulti"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Solicitations","route":"/bu/api/profiles/Solicitations","name":"Solicitations","methods":[{"method":"post","fn":"send"},{"method":"post","fn":"get"},{"method":"post","fn":"cancel"},{"method":"post","fn":"reject"},{"method":"post","fn":"accept"},{"method":"post","fn":"resend"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Aggregator","route":"/bu/api/profiles/Aggregator","name":"Aggregator","methods":[{"method":"post","fn":"get"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Storage","route":"/bu/api/profiles/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/MyMath","route":"/bu/api/profiles/MyMath","name":"MyMath","methods":[{"method":"post","fn":"abs"},{"method":"post","fn":"acos"},{"method":"post","fn":"acosh"},{"method":"post","fn":"asin"},{"method":"post","fn":"asinh"},{"method":"post","fn":"atan"},{"method":"post","fn":"atanh"},{"method":"post","fn":"atan2"},{"method":"post","fn":"ceil"},{"method":"post","fn":"cbrt"},{"method":"post","fn":"expm1"},{"method":"post","fn":"clz32"},{"method":"post","fn":"cos"},{"method":"post","fn":"cosh"},{"method":"post","fn":"exp"},{"method":"post","fn":"floor"},{"method":"post","fn":"fround"},{"method":"post","fn":"hypot"},{"method":"post","fn":"imul"},{"method":"post","fn":"log"},{"method":"post","fn":"log1p"},{"method":"post","fn":"log2"},{"method":"post","fn":"log10"},{"method":"post","fn":"max"},{"method":"post","fn":"min"},{"method":"post","fn":"pow"},{"method":"post","fn":"random"},{"method":"post","fn":"round"},{"method":"post","fn":"sign"},{"method":"post","fn":"sin"},{"method":"post","fn":"sinh"},{"method":"post","fn":"sqrt"},{"method":"post","fn":"tan"},{"method":"post","fn":"tanh"},{"method":"post","fn":"trunc"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/SystemView","route":"/bu/api/profiles/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Plugin","route":"/bu/api/profiles/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockUsers"},{"method":"post","fn":"clearMockTournaments"},{"method":"post","fn":"clearMockTeams"},{"method":"post","fn":"clearMockGroups"},{"method":"post","fn":"clearMockEvents"},{"method":"post","fn":"clearMockSolicitations"},{"method":"post","fn":"clearMockFollows"},{"method":"post","fn":"clearMockBadges"},{"method":"post","fn":"clearMockLocations"},{"method":"post","fn":"patchLocations"},{"method":"post","fn":"addMockLocationEntries"},{"method":"post","fn":"createMockUsers"},{"method":"post","fn":"createMockBadge"},{"method":"post","fn":"createReadyTeam"},{"method":"post","fn":"createReadyTournament"},{"method":"post","fn":"createMultipleTeams"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"clearExpiredTeams"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/profiles","port":"4100","serviceUrl":"http://127.0.0.1:4100/bu/api/profiles","socketPath":"/bu/api/profiles/socket.io","namespace":"ws://127.0.0.1:4100/bu/api/profiles","SystemLynxService":true},"modules":[{"name":"Badges","module":{"db":{"itemName":"Badge","collectionName":"Badges"}}},{"name":"Locations","module":{"db":{"itemName":"Location","collectionName":"Locations"}}},{"name":"Users","module":{"db":{"itemName":"User","collectionName":"Users"}}},{"name":"Teams","module":{"db":{"itemName":"Team","collectionName":"Teams"}}},{"name":"Tournaments","module":{"db":{"itemName":"Tournament","collectionName":"Tournaments"}}},{"name":"Groups","module":{"db":{"itemName":"Group","collectionName":"Groups"}}},{"name":"Events","module":{"db":{"itemName":"Event","collectionName":"Events"}}},{"name":"Follows","module":{"db":{"itemName":"Follow","collectionName":"Follows"}}},{"name":"Solicitations","module":{"db":{"itemName":"Solicitation","collectionName":"Solicitations"}}},{"name":"Aggregator","module":{"db":{},"COLLECTIONS":["Users","Teams","Tournaments","Groups","Events","Follows","Solicitations","Locations"]}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Profiles/files","STORAGE_URL":"http://127.0.0.1:4100/storage"}},{"name":"MyMath","__constructor":{},"module":{}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/profiles","port":"4100","host":"127.0.0.1","protocol":"http","ssl":null},"services":[{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":["Badges.md","Events.md","Follows.md","Groups.md","Locations.md","Profiles.md","Solicitations.md","Teams.md","Tournaments.md","Users.md","Users.signIn.md","Users.signUp.md"],"tests":["Aggregator.get.json","Badges.get.json","Events.add.json","Events.addAdmin.json","Events.addGroup.json","Events.addMember.json","Events.addTeam.json","Events.addTournament.json","Events.edit.json","Events.get.json","Events.removeAdmin.json","Events.removeGroup.json","Events.removeMember.json","Events.removeTeam.json","Events.removeTournament.json","Follows.add.json","Follows.delete.json","Follows.get.json","Follows.getPage.json","Groups.add.json","Groups.addAdmin.json","Groups.addMember.json","Groups.addTeam.json","Groups.addTournament.json","Groups.edit.json","Groups.get.json","Groups.removeAdmin.json","Groups.removeMember.json","Groups.removeTeam.json","Groups.removeTournament.json","Groups.updateStatus.json","Locations.get.json","Locations.resolve.json","Locations.save.json","Locations.search.json","Solicitations.accept.json","Solicitations.cancel.json","Solicitations.get.json","Solicitations.reject.json","Solicitations.resend.json","Solicitations.send.json","Storage.delete.json","Storage.list.json","Storage.save.json","Teams.acceptDraft.json","Teams.add.json","Teams.addAdmin.json","Teams.addMember.json","Teams.closeDraft.json","Teams.edit.json","Teams.endDraft.json","Teams.get.json","Teams.joinDraft.json","Teams.rejectDraft.json","Teams.removeAdmin.json","Teams.removeFromDraft.json","Teams.removeMember.json","Teams.removeScope.json","Teams.setScope.json","Teams.startDraft.json","Teams.updateStatus.json","Tournaments.add.json","Tournaments.addAdmin.json","Tournaments.addMember.json","Tournaments.addTeam.json","Tournaments.edit.json","Tournaments.get.json","Tournaments.getPage.json","Tournaments.removeAdmin.json","Tournaments.removeMember.json","Tournaments.removeTeam.json","Tournaments.startDraft.json","Tournaments.updateStatus.json","Users.edit.json","Users.exists.json","Users.get.json","Users.getPage.json","Users.isRecognized.json","Users.quickSignUp.json","Users.setBadges.json","Users.signIn.json","Users.signOut.json","Users.signUp.json","Users.updateRealLocation.json"]}},{"projectCode":"buAPI","serviceId":"Networking","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Chats","route":"/bu/api/networking/Chats","name":"Chats","methods":[{"method":"post","fn":"start"},{"method":"post","fn":"send"},{"method":"post","fn":"get"},{"method":"post","fn":"getMessages"},{"method":"post","fn":"undoMessage"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addSeenBy"},{"method":"post","fn":"getAll"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Notifications","route":"/bu/api/networking/Notifications","name":"Notifications","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"updateStatus"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Storage","route":"/bu/api/networking/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/SystemView","route":"/bu/api/networking/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Plugin","route":"/bu/api/networking/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockChats"},{"method":"post","fn":"clearMockNotifications"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/networking","port":"5100","serviceUrl":"http://127.0.0.1:5100/bu/api/networking","socketPath":"/bu/api/networking/socket.io","namespace":"ws://127.0.0.1:5100/bu/api/networking","SystemLynxService":true},"modules":[{"name":"Chats","module":{"db":{"itemName":"Chat","collectionName":"Chats"}}},{"name":"Notifications","module":{"db":{"itemName":"Notification","collectionName":"Notifications"}}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Networking/files","STORAGE_URL":"http://127.0.0.1:5100/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/networking","port":"5100","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":["Chats.md","Networking.md","Notifications.md","Shares.md"],"tests":["Chats.addMember.json","Chats.addSeenBy.json","Chats.get.json","Chats.getAll.json","Chats.getMessages.json","Chats.removeMember.json","Chats.send.json","Chats.start.json","Chats.undoMessage.json","Notifications.add.json","Notifications.get.json","Notifications.updateStatus.json"]}},{"projectCode":"buAPI","serviceId":"Basketball","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Games","route":"/bu/api/basketball/Games","name":"Games","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"editGameDetails"},{"method":"post","fn":"updateTeam"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addPlay"},{"method":"post","fn":"editPlay"},{"method":"post","fn":"undoPlay"},{"method":"post","fn":"insertPlay"},{"method":"post","fn":"endReview"},{"method":"post","fn":"acceptCallout"},{"method":"post","fn":"rejectCallout"},{"method":"post","fn":"setAdmins"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Stats","route":"/bu/api/basketball/Stats","name":"Stats","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Seasons","route":"/bu/api/basketball/Seasons","name":"Seasons","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addRound"},{"method":"post","fn":"editRound"},{"method":"post","fn":"removeRound"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"editTeam"},{"method":"post","fn":"acceptCallout"},{"method":"post","fn":"rejectCallout"},{"method":"post","fn":"addMatch"},{"method":"post","fn":"editMatch"},{"method":"post","fn":"cancel"},{"method":"post","fn":"removeMatch"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Aggregator","route":"/bu/api/basketball/Aggregator","name":"Aggregator","methods":[{"method":"post","fn":"get"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Storage","route":"/bu/api/basketball/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/SystemView","route":"/bu/api/basketball/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Plugin","route":"/bu/api/basketball/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockCourts"},{"method":"post","fn":"clearMockGames"},{"method":"post","fn":"clearMockSeasons"},{"method":"post","fn":"clearMockLocations"},{"method":"post","fn":"readyGame"},{"method":"post","fn":"clearStats"},{"method":"post","fn":"getMockPlays"},{"method":"post","fn":"wait"},{"method":"post","fn":"readySeason"},{"method":"post","fn":"seasonsTest1"},{"method":"post","fn":"seasonsTest2"},{"method":"post","fn":"seasonsTest3"},{"method":"post","fn":"seasonsTest4"},{"method":"post","fn":"seasonsTest5"},{"method":"post","fn":"playOutMockRound"},{"method":"post","fn":"playCasualGames"},{"method":"post","fn":"addSeasonGames"},{"method":"post","fn":"seedLocations"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/basketball","port":"4900","serviceUrl":"http://127.0.0.1:4900/bu/api/basketball","socketPath":"/bu/api/basketball/socket.io","namespace":"ws://127.0.0.1:4900/bu/api/basketball","SystemLynxService":true},"modules":[{"name":"Games","module":{"db":{"itemName":"Game","collectionName":"Games"}}},{"name":"Stats","module":{}},{"name":"Seasons","module":{"db":{"itemName":"Season","collectionName":"Seasons"}}},{"name":"Aggregator","module":{"db":{},"COLLECTIONS":["Events","Games","Seasons","PlayerOverallPerformance","PlayerSeasonalPerformance","PlayerPerGamePerformance","TeamOverallPerformance","TeamSeasonalPerformance","TeamPerGamePerformance","Locations"]}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Basketball/files","STORAGE_URL":"http://127.0.0.1:4900/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/basketball","port":"4900","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{"Badges":{},"Locations":{},"Users":{},"Teams":{},"Tournaments":{},"Groups":{},"Events":{},"Follows":{},"Solicitations":{},"Aggregator":{},"Storage":{},"MyMath":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":["Basketball.md","Games.md","Seasons.get.md","Seasons.md","Stats.md"],"tests":["Aggregator.get.json","Games.acceptCallout.json","Games.add.json","Games.addAdmin.json","Games.addPlay.json","Games.editGameDetails.json","Games.editPlay.json","Games.endReview.json","Games.get.json","Games.getPage.json","Games.insertPlay.json","Games.rejectCallout.json","Games.removeAdmin.json","Games.setAdmins.json","Games.undoPlay.json","Games.updateTeam.json","Plugin.getMockPlays.json","Plugin.seasonsTest1.json","Plugin.seasonsTest2.json","Plugin.seasonsTest3.json","Plugin.seasonsTest4.json","Plugin.seasonsTest5.json","Seasons.acceptCallout.json","Seasons.add.json","Seasons.addAdmin.json","Seasons.addMatch.json","Seasons.addRound.json","Seasons.addTeam.json","Seasons.cancel.json","Seasons.edit.json","Seasons.editMatch.json","Seasons.editRound.json","Seasons.editTeam.json","Seasons.get.json","Seasons.getPage.json","Seasons.rejectCallout.json","Seasons.removeAdmin.json","Seasons.removeMatch.json","Seasons.removeRound.json","Seasons.removeTeam.json","Stats.get.json","Stats.getPage.json"]}},{"projectCode":"buAPI","serviceId":"Media","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4000/bu/api/media/Broadcasts","route":"/bu/api/media/Broadcasts","name":"Broadcasts","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getRtpCapabilities"},{"method":"post","fn":"getSenderTransportData"},{"method":"post","fn":"connectTransport"},{"method":"post","fn":"createSceneProducer"},{"method":"post","fn":"getReceiverTransportData"},{"method":"post","fn":"createSceneConsumers"},{"method":"post","fn":"resumeConsumer"},{"method":"post","fn":"switchScenes"},{"method":"post","fn":"startBroadcast"},{"method":"post","fn":"endBroadcast"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"setAdmins"},{"method":"post","fn":"addContributor"},{"method":"post","fn":"removeContributor"},{"method":"post","fn":"setContributors"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Posts","route":"/bu/api/media/Posts","name":"Posts","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"delete"},{"method":"post","fn":"edit"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Reactions","route":"/bu/api/media/Reactions","name":"Reactions","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getCount"},{"method":"post","fn":"delete"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Storage","route":"/bu/api/media/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/SystemView","route":"/bu/api/media/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Plugin","route":"/bu/api/media/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockBroadcasts"},{"method":"post","fn":"clearMockReactions"},{"method":"post","fn":"clearMockPost"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/media","port":"4000","serviceUrl":"http://127.0.0.1:4000/bu/api/media","socketPath":"/bu/api/media/socket.io","namespace":"ws://127.0.0.1:4000/bu/api/media","SystemLynxService":true},"modules":[{"name":"Broadcasts","module":{"db":{"itemName":"Broadcast","collectionName":"Broadcasts"},"router":{"_events":{},"_eventsCount":2,"_maxListeners":null}}},{"name":"Posts","module":{"db":{"itemName":"Post","collectionName":"Posts"}}},{"name":"Reactions","module":{"db":{"itemName":"Reaction","collectionName":"Reactions"}}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Media/files","STORAGE_URL":"http://127.0.0.1:4000/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/media","port":"4000","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{"Badges":{},"Locations":{},"Users":{},"Teams":{},"Tournaments":{},"Groups":{},"Events":{},"Follows":{},"Solicitations":{},"Aggregator":{},"Storage":{},"MyMath":{},"SystemView":{},"Plugin":{}}},{"name":"Basketball","url":"http://127.0.0.1:4900/bu/api/basketball","onLoad":null,"client":{"Games":{},"Stats":{},"Seasons":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":["Broadcasts.md","Media.md","Posts-contract.md","Posts.md","Reactions.md","Storage.md"],"tests":["Broadcasts.add.json","Broadcasts.addAdmin.json","Broadcasts.addContributor.json","Broadcasts.get.json","Broadcasts.getPage.json","Broadcasts.removeAdmin.json","Broadcasts.removeContributor.json","Broadcasts.setAdmins.json","Broadcasts.setContributors.json","Posts.add.json","Posts.delete.json","Posts.edit.json","Posts.get.json","Posts.getPage.json","Reactions.add.json","Reactions.delete.json","Reactions.get.json","Reactions.getCount.json","Reactions.getPage.json"]}},{"projectCode":"buAPI","serviceId":"Mocks","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Badges","route":"/bu/api/mocks/Badges","name":"Badges","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Locations","route":"/bu/api/mocks/Locations","name":"Locations","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Users","route":"/bu/api/mocks/Users","name":"Users","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/UsersArchive","route":"/bu/api/mocks/UsersArchive","name":"UsersArchive","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Tournaments","route":"/bu/api/mocks/Tournaments","name":"Tournaments","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Teams","route":"/bu/api/mocks/Teams","name":"Teams","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Groups","route":"/bu/api/mocks/Groups","name":"Groups","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Events","route":"/bu/api/mocks/Events","name":"Events","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Follows","route":"/bu/api/mocks/Follows","name":"Follows","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Solicitations","route":"/bu/api/mocks/Solicitations","name":"Solicitations","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerOverallPerformance","route":"/bu/api/mocks/PlayerOverallPerformance","name":"PlayerOverallPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerSeasonalPerformance","route":"/bu/api/mocks/PlayerSeasonalPerformance","name":"PlayerSeasonalPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerPerGamePerformance","route":"/bu/api/mocks/PlayerPerGamePerformance","name":"PlayerPerGamePerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamOverallPerformance","route":"/bu/api/mocks/TeamOverallPerformance","name":"TeamOverallPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamSeasonalPerformance","route":"/bu/api/mocks/TeamSeasonalPerformance","name":"TeamSeasonalPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamPerGamePerformance","route":"/bu/api/mocks/TeamPerGamePerformance","name":"TeamPerGamePerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Broadcasts","route":"/bu/api/mocks/Broadcasts","name":"Broadcasts","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Posts","route":"/bu/api/mocks/Posts","name":"Posts","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Reactions","route":"/bu/api/mocks/Reactions","name":"Reactions","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/People","route":"/bu/api/mocks/People","name":"People","methods":[{"method":"post","fn":"createUsers"},{"method":"post","fn":"createPopulatedUsers"},{"method":"post","fn":"createTeams"},{"method":"post","fn":"createPopulatedTeams"},{"method":"post","fn":"createTournaments"},{"method":"post","fn":"createPopulatedTournaments"},{"method":"post","fn":"createGroups"},{"method":"post","fn":"createPopulatedGroups"},{"method":"post","fn":"createEvents"},{"method":"post","fn":"createPopulatedEvents"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Games","route":"/bu/api/mocks/Games","name":"Games","methods":[{"method":"post","fn":"playOutGames"},{"method":"post","fn":"playOutExistingGames"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Seasons","route":"/bu/api/mocks/Seasons","name":"Seasons","methods":[{"method":"post","fn":"createPopulatedSeasons"},{"method":"post","fn":"playOutSeasons"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Media","route":"/bu/api/mocks/Media","name":"Media","methods":[{"method":"post","fn":"createPosts"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Scenarios","route":"/bu/api/mocks/Scenarios","name":"Scenarios","methods":[{"method":"post","fn":"buildArea"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/GamesDB","route":"/bu/api/mocks/GamesDB","name":"GamesDB","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/SeasonsDB","route":"/bu/api/mocks/SeasonsDB","name":"SeasonsDB","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/SystemView","route":"/bu/api/mocks/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Plugin","route":"/bu/api/mocks/Plugin","name":"Plugin","methods":[{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/mocks","port":"4300","serviceUrl":"http://127.0.0.1:4300/bu/api/mocks","socketPath":"/bu/api/mocks/socket.io","namespace":"ws://127.0.0.1:4300/bu/api/mocks","SystemLynxService":true},"modules":[{"name":"Badges","__constructor":{},"module":{}},{"name":"Locations","__constructor":{},"module":{}},{"name":"Users","__constructor":{},"module":{}},{"name":"UsersArchive","__constructor":{},"module":{}},{"name":"Tournaments","__constructor":{},"module":{}},{"name":"Teams","__constructor":{},"module":{}},{"name":"Groups","__constructor":{},"module":{}},{"name":"Events","__constructor":{},"module":{}},{"name":"Follows","__constructor":{},"module":{}},{"name":"Solicitations","__constructor":{},"module":{}},{"name":"PlayerOverallPerformance","__constructor":{},"module":{}},{"name":"PlayerSeasonalPerformance","__constructor":{},"module":{}},{"name":"PlayerPerGamePerformance","__constructor":{},"module":{}},{"name":"TeamOverallPerformance","__constructor":{},"module":{}},{"name":"TeamSeasonalPerformance","__constructor":{},"module":{}},{"name":"TeamPerGamePerformance","__constructor":{},"module":{}},{"name":"Broadcasts","__constructor":{},"module":{}},{"name":"Posts","__constructor":{},"module":{}},{"name":"Reactions","__constructor":{},"module":{}},{"name":"People","module":{}},{"name":"Games","module":{}},{"name":"Seasons","module":{}},{"name":"Media","module":{}},{"name":"Scenarios","module":{}},{"name":"GamesDB","__constructor":{},"module":{}},{"name":"SeasonsDB","__constructor":{},"module":{}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/mocks","port":"4300","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Basketball","url":"http://127.0.0.1:4900/bu/api/basketball","onLoad":null,"client":{}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":["Mocks.md"],"tests":["Games.playOutGames.json","Media.createPosts.json","People.createPopulatedTeams.json","People.createUsers.json","Seasons.createPopulatedSeasons.json","Seasons.playOutSeasons.json"]}}]
1
+ [{"projectCode":"systemview-test","serviceId":"TestService","system":{"connectionData":{"modules":[{"namespace":"ws://localhost:5555/test/api/Math","route":"/test/api/Math","name":"Math","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"subtract"},{"method":"post","fn":"multiply"},{"method":"post","fn":"divide"},{"method":"post","fn":"getItems"}]},{"namespace":"ws://localhost:5555/test/api/String","route":"/test/api/String","name":"String","methods":[{"method":"post","fn":"concat"},{"method":"post","fn":"repeat"},{"method":"post","fn":"toUpperCase"}]},{"namespace":"ws://localhost:5555/test/api/Auth","route":"/test/api/Auth","name":"Auth","methods":[{"method":"post","fn":"signIn"},{"method":"post","fn":"getSession"},{"method":"post","fn":"divideByZero"},{"method":"post","fn":"throwError"}]},{"namespace":"ws://localhost:5555/test/api/Headers","route":"/test/api/Headers","name":"Headers","methods":[{"method":"post","fn":"getOrigin"},{"method":"post","fn":"echo"}]},{"namespace":"ws://localhost:5555/test/api/CLI","route":"/test/api/CLI","name":"CLI","methods":[{"method":"post","fn":"run"},{"method":"post","fn":"probe"},{"method":"post","fn":"test"},{"method":"post","fn":"list"},{"method":"post","fn":"logs"}]},{"namespace":"ws://localhost:5555/test/api/SystemView","route":"/test/api/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://localhost:5555/test/api/Plugin","route":"/test/api/Plugin","name":"Plugin","methods":[{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"localhost","route":"/test/api","port":5555,"serviceUrl":"http://localhost:5555/test/api","socketPath":"/test/api/socket.io","namespace":"ws://localhost:5555/test/api","SystemLynxService":true},"modules":[{"name":"Math","__constructor":{},"module":{}},{"name":"String","__constructor":{},"module":{}},{"name":"Auth","__constructor":{"_lastCookie":""},"module":{}},{"name":"Headers","__constructor":{"_lastOrigin":"","_lastHeaders":{}},"module":{}},{"name":"CLI","__constructor":{},"module":{}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"test/api","port":5555},"services":[{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{}}]},"specList":{"docs":[],"tests":["Auth.divideByZero.json","Auth.getSession.json","Auth.signIn.json","Auth.throwError.json","CLI.list.json","CLI.logs.json","CLI.probe.json","CLI.run.json","CLI.test.json","Headers.echo.json","Headers.getOrigin.json","Math.add.json","Math.divide.json","Math.list.json","Math.multiply.json","Math.subtract.json","String.concat.json","String.repeat.json","SystemView.getLog.json"]}},{"projectCode":"buAPI","serviceId":"Profiles","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Badges","route":"/bu/api/profiles/Badges","name":"Badges","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getDefinitions"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Locations","route":"/bu/api/profiles/Locations","name":"Locations","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"search"},{"method":"post","fn":"resolve"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Users","route":"/bu/api/profiles/Users","name":"Users","methods":[{"method":"post","fn":"signUp"},{"method":"post","fn":"signIn"},{"method":"post","fn":"signOut"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"quickSignUp"},{"method":"post","fn":"exists"},{"method":"post","fn":"isRecognized"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"setBadges"},{"method":"post","fn":"updateRealLocation"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Teams","route":"/bu/api/profiles/Teams","name":"Teams","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"setScope"},{"method":"post","fn":"removeScope"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Tournaments","route":"/bu/api/profiles/Tournaments","name":"Tournaments","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Groups","route":"/bu/api/profiles/Groups","name":"Groups","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"addTournament"},{"method":"post","fn":"removeTournament"},{"method":"post","fn":"updateStatus"},{"method":"post","fn":"registerSeason"},{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Events","route":"/bu/api/profiles/Events","name":"Events","methods":[{"method":"post","fn":"startDraft"},{"method":"post","fn":"closeDraft"},{"method":"post","fn":"endDraft"},{"method":"post","fn":"joinDraft"},{"method":"post","fn":"removeFromDraft"},{"method":"post","fn":"acceptDraft"},{"method":"post","fn":"rejectDraft"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"add"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"addTournament"},{"method":"post","fn":"removeTournament"},{"method":"post","fn":"addGroup"},{"method":"post","fn":"removeGroup"},{"method":"post","fn":"registerSeason"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Follows","route":"/bu/api/profiles/Follows","name":"Follows","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"addMulti"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"delete"},{"method":"post","fn":"deleteMulti"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Solicitations","route":"/bu/api/profiles/Solicitations","name":"Solicitations","methods":[{"method":"post","fn":"send"},{"method":"post","fn":"get"},{"method":"post","fn":"cancel"},{"method":"post","fn":"reject"},{"method":"post","fn":"accept"},{"method":"post","fn":"resend"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Aggregator","route":"/bu/api/profiles/Aggregator","name":"Aggregator","methods":[{"method":"post","fn":"get"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Storage","route":"/bu/api/profiles/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/SystemView","route":"/bu/api/profiles/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4100/bu/api/profiles/Plugin","route":"/bu/api/profiles/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockUsers"},{"method":"post","fn":"clearMockTournaments"},{"method":"post","fn":"clearMockTeams"},{"method":"post","fn":"clearMockGroups"},{"method":"post","fn":"clearMockEvents"},{"method":"post","fn":"clearMockSolicitations"},{"method":"post","fn":"clearMockFollows"},{"method":"post","fn":"clearMockBadges"},{"method":"post","fn":"clearMockLocations"},{"method":"post","fn":"patchLocations"},{"method":"post","fn":"addMockLocationEntries"},{"method":"post","fn":"createMockUsers"},{"method":"post","fn":"createMockBadge"},{"method":"post","fn":"createReadyTeam"},{"method":"post","fn":"createReadyTournament"},{"method":"post","fn":"createMultipleTeams"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"clearExpiredTeams"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/profiles","port":"4100","serviceUrl":"http://127.0.0.1:4100/bu/api/profiles","socketPath":"/bu/api/profiles/socket.io","namespace":"ws://127.0.0.1:4100/bu/api/profiles","SystemLynxService":true},"modules":[{"name":"Badges","module":{"db":{"itemName":"Badge","collectionName":"Badges"}}},{"name":"Locations","module":{"db":{"itemName":"Location","collectionName":"Locations"}}},{"name":"Users","module":{"db":{"itemName":"User","collectionName":"Users"}}},{"name":"Teams","module":{"db":{"itemName":"Team","collectionName":"Teams"}}},{"name":"Tournaments","module":{"db":{"itemName":"Tournament","collectionName":"Tournaments"}}},{"name":"Groups","module":{"db":{"itemName":"Group","collectionName":"Groups"}}},{"name":"Events","module":{"db":{"itemName":"Event","collectionName":"Events"}}},{"name":"Follows","module":{"db":{"itemName":"Follow","collectionName":"Follows"}}},{"name":"Solicitations","module":{"db":{"itemName":"Solicitation","collectionName":"Solicitations"}}},{"name":"Aggregator","module":{"db":{},"COLLECTIONS":["Users","Teams","Tournaments","Groups","Events","Follows","Solicitations","Locations"]}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Profiles/files","STORAGE_URL":"http://127.0.0.1:4100/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/profiles","port":"4100","host":"127.0.0.1","protocol":"http","ssl":null},"services":[{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":["Badges.md","Events.md","Follows.md","Groups.md","Locations.md","Profiles.md","Solicitations.md","Teams.md","Tournaments.md","Users.md","Users.signIn.md","Users.signUp.md"],"tests":["Aggregator.get.json","Badges.get.json","Events.add.json","Events.addAdmin.json","Events.addGroup.json","Events.addMember.json","Events.addTeam.json","Events.addTournament.json","Events.edit.json","Events.get.json","Events.removeAdmin.json","Events.removeGroup.json","Events.removeMember.json","Events.removeTeam.json","Events.removeTournament.json","Follows.add.json","Follows.delete.json","Follows.get.json","Follows.getPage.json","Groups.add.json","Groups.addAdmin.json","Groups.addMember.json","Groups.addTeam.json","Groups.addTournament.json","Groups.edit.json","Groups.get.json","Groups.removeAdmin.json","Groups.removeMember.json","Groups.removeTeam.json","Groups.removeTournament.json","Groups.updateStatus.json","Locations.get.json","Locations.resolve.json","Locations.save.json","Locations.search.json","Solicitations.accept.json","Solicitations.cancel.json","Solicitations.get.json","Solicitations.reject.json","Solicitations.resend.json","Solicitations.send.json","Storage.delete.json","Storage.list.json","Storage.save.json","Teams.acceptDraft.json","Teams.add.json","Teams.addAdmin.json","Teams.addMember.json","Teams.closeDraft.json","Teams.edit.json","Teams.endDraft.json","Teams.get.json","Teams.joinDraft.json","Teams.rejectDraft.json","Teams.removeAdmin.json","Teams.removeFromDraft.json","Teams.removeMember.json","Teams.removeScope.json","Teams.setScope.json","Teams.startDraft.json","Teams.updateStatus.json","Tournaments.add.json","Tournaments.addAdmin.json","Tournaments.addMember.json","Tournaments.addTeam.json","Tournaments.edit.json","Tournaments.get.json","Tournaments.getPage.json","Tournaments.removeAdmin.json","Tournaments.removeMember.json","Tournaments.removeTeam.json","Tournaments.startDraft.json","Tournaments.updateStatus.json","Users.edit.json","Users.exists.json","Users.get.json","Users.getPage.json","Users.isRecognized.json","Users.quickSignUp.json","Users.setBadges.json","Users.signIn.json","Users.signOut.json","Users.signUp.json","Users.updateRealLocation.json"]}},{"projectCode":"buAPI","serviceId":"Basketball","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Games","route":"/bu/api/basketball/Games","name":"Games","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"editGameDetails"},{"method":"post","fn":"updateTeam"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addPlay"},{"method":"post","fn":"editPlay"},{"method":"post","fn":"undoPlay"},{"method":"post","fn":"insertPlay"},{"method":"post","fn":"endReview"},{"method":"post","fn":"acceptCallout"},{"method":"post","fn":"rejectCallout"},{"method":"post","fn":"setAdmins"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Stats","route":"/bu/api/basketball/Stats","name":"Stats","methods":[{"method":"post","fn":"get"},{"method":"post","fn":"getPage"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Seasons","route":"/bu/api/basketball/Seasons","name":"Seasons","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"edit"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"addRound"},{"method":"post","fn":"editRound"},{"method":"post","fn":"removeRound"},{"method":"post","fn":"addTeam"},{"method":"post","fn":"removeTeam"},{"method":"post","fn":"editTeam"},{"method":"post","fn":"acceptCallout"},{"method":"post","fn":"rejectCallout"},{"method":"post","fn":"addMatch"},{"method":"post","fn":"editMatch"},{"method":"post","fn":"cancel"},{"method":"post","fn":"removeMatch"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Aggregator","route":"/bu/api/basketball/Aggregator","name":"Aggregator","methods":[{"method":"post","fn":"get"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Storage","route":"/bu/api/basketball/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/SystemView","route":"/bu/api/basketball/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4900/bu/api/basketball/Plugin","route":"/bu/api/basketball/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockCourts"},{"method":"post","fn":"clearMockGames"},{"method":"post","fn":"clearMockSeasons"},{"method":"post","fn":"clearMockLocations"},{"method":"post","fn":"readyGame"},{"method":"post","fn":"clearStats"},{"method":"post","fn":"getMockPlays"},{"method":"post","fn":"wait"},{"method":"post","fn":"readySeason"},{"method":"post","fn":"seasonsTest1"},{"method":"post","fn":"seasonsTest2"},{"method":"post","fn":"seasonsTest3"},{"method":"post","fn":"seasonsTest4"},{"method":"post","fn":"seasonsTest5"},{"method":"post","fn":"playOutMockRound"},{"method":"post","fn":"playCasualGames"},{"method":"post","fn":"addSeasonGames"},{"method":"post","fn":"seedLocations"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/basketball","port":"4900","serviceUrl":"http://127.0.0.1:4900/bu/api/basketball","socketPath":"/bu/api/basketball/socket.io","namespace":"ws://127.0.0.1:4900/bu/api/basketball","SystemLynxService":true},"modules":[{"name":"Games","module":{"db":{"itemName":"Game","collectionName":"Games"}}},{"name":"Stats","module":{}},{"name":"Seasons","module":{"db":{"itemName":"Season","collectionName":"Seasons"}}},{"name":"Aggregator","module":{"db":{},"COLLECTIONS":["Events","Games","Seasons","PlayerOverallPerformance","PlayerSeasonalPerformance","PlayerPerGamePerformance","TeamOverallPerformance","TeamSeasonalPerformance","TeamPerGamePerformance","Locations"]}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Basketball/files","STORAGE_URL":"http://127.0.0.1:4900/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/basketball","port":"4900","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{"Badges":{},"Locations":{},"Users":{},"Teams":{},"Tournaments":{},"Groups":{},"Events":{},"Follows":{},"Solicitations":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":["Basketball.md","Games.md","Seasons.get.md","Seasons.md","Stats.md"],"tests":["Aggregator.get.json","Games.acceptCallout.json","Games.add.json","Games.addAdmin.json","Games.addPlay.json","Games.editGameDetails.json","Games.editPlay.json","Games.endReview.json","Games.get.json","Games.getPage.json","Games.insertPlay.json","Games.rejectCallout.json","Games.removeAdmin.json","Games.setAdmins.json","Games.undoPlay.json","Games.updateTeam.json","Plugin.getMockPlays.json","Plugin.seasonsTest1.json","Plugin.seasonsTest2.json","Plugin.seasonsTest3.json","Plugin.seasonsTest4.json","Plugin.seasonsTest5.json","Seasons.acceptCallout.json","Seasons.add.json","Seasons.addAdmin.json","Seasons.addMatch.json","Seasons.addRound.json","Seasons.addTeam.json","Seasons.cancel.json","Seasons.edit.json","Seasons.editMatch.json","Seasons.editRound.json","Seasons.editTeam.json","Seasons.get.json","Seasons.getPage.json","Seasons.rejectCallout.json","Seasons.removeAdmin.json","Seasons.removeMatch.json","Seasons.removeRound.json","Seasons.removeTeam.json","Stats.get.json","Stats.getPage.json"]}},{"projectCode":"buAPI","serviceId":"Media","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4000/bu/api/media/Broadcasts","route":"/bu/api/media/Broadcasts","name":"Broadcasts","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getRtpCapabilities"},{"method":"post","fn":"getSenderTransportData"},{"method":"post","fn":"connectTransport"},{"method":"post","fn":"createSceneProducer"},{"method":"post","fn":"getReceiverTransportData"},{"method":"post","fn":"createSceneConsumers"},{"method":"post","fn":"resumeConsumer"},{"method":"post","fn":"switchScenes"},{"method":"post","fn":"startBroadcast"},{"method":"post","fn":"endBroadcast"},{"method":"post","fn":"addAdmin"},{"method":"post","fn":"removeAdmin"},{"method":"post","fn":"setAdmins"},{"method":"post","fn":"addContributor"},{"method":"post","fn":"removeContributor"},{"method":"post","fn":"setContributors"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Posts","route":"/bu/api/media/Posts","name":"Posts","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"delete"},{"method":"post","fn":"edit"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Reactions","route":"/bu/api/media/Reactions","name":"Reactions","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"getPage"},{"method":"post","fn":"getCount"},{"method":"post","fn":"delete"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Storage","route":"/bu/api/media/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/SystemView","route":"/bu/api/media/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4000/bu/api/media/Plugin","route":"/bu/api/media/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockBroadcasts"},{"method":"post","fn":"clearMockReactions"},{"method":"post","fn":"clearMockPost"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/media","port":"4000","serviceUrl":"http://127.0.0.1:4000/bu/api/media","socketPath":"/bu/api/media/socket.io","namespace":"ws://127.0.0.1:4000/bu/api/media","SystemLynxService":true},"modules":[{"name":"Broadcasts","module":{"db":{"itemName":"Broadcast","collectionName":"Broadcasts"}}},{"name":"Posts","module":{"db":{"itemName":"Post","collectionName":"Posts"}}},{"name":"Reactions","module":{"db":{"itemName":"Reaction","collectionName":"Reactions"}}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Media/files","STORAGE_URL":"http://127.0.0.1:4000/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/media","port":"4000","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{"Badges":{},"Locations":{},"Users":{},"Teams":{},"Tournaments":{},"Groups":{},"Events":{},"Follows":{},"Solicitations":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"Basketball","url":"http://127.0.0.1:4900/bu/api/basketball","onLoad":null,"client":{"Games":{},"Stats":{},"Seasons":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":["Broadcasts.md","Media.md","Posts-contract.md","Posts.md","Reactions.md","Storage.md"],"tests":["Broadcasts.add.json","Broadcasts.addAdmin.json","Broadcasts.addContributor.json","Broadcasts.get.json","Broadcasts.getPage.json","Broadcasts.removeAdmin.json","Broadcasts.removeContributor.json","Broadcasts.setAdmins.json","Broadcasts.setContributors.json","Posts.add.json","Posts.delete.json","Posts.edit.json","Posts.get.json","Posts.getPage.json","Reactions.add.json","Reactions.delete.json","Reactions.get.json","Reactions.getCount.json","Reactions.getPage.json"]}},{"projectCode":"buAPI","serviceId":"Networking","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Chats","route":"/bu/api/networking/Chats","name":"Chats","methods":[{"method":"post","fn":"start"},{"method":"post","fn":"send"},{"method":"post","fn":"get"},{"method":"post","fn":"getMessages"},{"method":"post","fn":"undoMessage"},{"method":"post","fn":"addMember"},{"method":"post","fn":"removeMember"},{"method":"post","fn":"addSeenBy"},{"method":"post","fn":"getAll"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Notifications","route":"/bu/api/networking/Notifications","name":"Notifications","methods":[{"method":"post","fn":"add"},{"method":"post","fn":"get"},{"method":"post","fn":"updateStatus"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Storage","route":"/bu/api/networking/Storage","name":"Storage","methods":[{"method":"post","fn":"save"},{"method":"post","fn":"delete"},{"method":"post","fn":"list"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/SystemView","route":"/bu/api/networking/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:5100/bu/api/networking/Plugin","route":"/bu/api/networking/Plugin","name":"Plugin","methods":[{"method":"post","fn":"clearMockChats"},{"method":"post","fn":"clearMockNotifications"},{"method":"post","fn":"clearStorage"},{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/networking","port":"5100","serviceUrl":"http://127.0.0.1:5100/bu/api/networking","socketPath":"/bu/api/networking/socket.io","namespace":"ws://127.0.0.1:5100/bu/api/networking","SystemLynxService":true},"modules":[{"name":"Chats","module":{"db":{"itemName":"Chat","collectionName":"Chats"}}},{"name":"Notifications","module":{"db":{"itemName":"Notification","collectionName":"Notifications"}}},{"name":"Storage","module":{"STORAGE":"/Users/odionedwards/buAPI/Networking/files","STORAGE_URL":"http://127.0.0.1:5100/storage"}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/networking","port":"5100","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Profiles","url":"http://127.0.0.1:4100/bu/api/profiles","onLoad":null,"client":{"Badges":{},"Locations":{},"Users":{},"Teams":{},"Tournaments":{},"Groups":{},"Events":{},"Follows":{},"Solicitations":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":["Chats.md","Networking.md","Notifications.md","Shares.md"],"tests":["Chats.addMember.json","Chats.addSeenBy.json","Chats.get.json","Chats.getAll.json","Chats.getMessages.json","Chats.removeMember.json","Chats.send.json","Chats.start.json","Chats.undoMessage.json","Notifications.add.json","Notifications.get.json","Notifications.updateStatus.json"]}},{"projectCode":"buAPI","serviceId":"Mocks","system":{"connectionData":{"modules":[{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Badges","route":"/bu/api/mocks/Badges","name":"Badges","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Locations","route":"/bu/api/mocks/Locations","name":"Locations","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Users","route":"/bu/api/mocks/Users","name":"Users","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/UsersArchive","route":"/bu/api/mocks/UsersArchive","name":"UsersArchive","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Tournaments","route":"/bu/api/mocks/Tournaments","name":"Tournaments","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Teams","route":"/bu/api/mocks/Teams","name":"Teams","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Groups","route":"/bu/api/mocks/Groups","name":"Groups","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Events","route":"/bu/api/mocks/Events","name":"Events","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Follows","route":"/bu/api/mocks/Follows","name":"Follows","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Solicitations","route":"/bu/api/mocks/Solicitations","name":"Solicitations","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerOverallPerformance","route":"/bu/api/mocks/PlayerOverallPerformance","name":"PlayerOverallPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerSeasonalPerformance","route":"/bu/api/mocks/PlayerSeasonalPerformance","name":"PlayerSeasonalPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/PlayerPerGamePerformance","route":"/bu/api/mocks/PlayerPerGamePerformance","name":"PlayerPerGamePerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamOverallPerformance","route":"/bu/api/mocks/TeamOverallPerformance","name":"TeamOverallPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamSeasonalPerformance","route":"/bu/api/mocks/TeamSeasonalPerformance","name":"TeamSeasonalPerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/TeamPerGamePerformance","route":"/bu/api/mocks/TeamPerGamePerformance","name":"TeamPerGamePerformance","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Broadcasts","route":"/bu/api/mocks/Broadcasts","name":"Broadcasts","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Posts","route":"/bu/api/mocks/Posts","name":"Posts","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Reactions","route":"/bu/api/mocks/Reactions","name":"Reactions","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/People","route":"/bu/api/mocks/People","name":"People","methods":[{"method":"post","fn":"createUsers"},{"method":"post","fn":"createPopulatedUsers"},{"method":"post","fn":"createTeams"},{"method":"post","fn":"createPopulatedTeams"},{"method":"post","fn":"createTournaments"},{"method":"post","fn":"createPopulatedTournaments"},{"method":"post","fn":"createGroups"},{"method":"post","fn":"createPopulatedGroups"},{"method":"post","fn":"createEvents"},{"method":"post","fn":"createPopulatedEvents"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Games","route":"/bu/api/mocks/Games","name":"Games","methods":[{"method":"post","fn":"playOutGames"},{"method":"post","fn":"playOutExistingGames"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Seasons","route":"/bu/api/mocks/Seasons","name":"Seasons","methods":[{"method":"post","fn":"createPopulatedSeasons"},{"method":"post","fn":"playOutSeasons"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Media","route":"/bu/api/mocks/Media","name":"Media","methods":[{"method":"post","fn":"createPosts"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Scenarios","route":"/bu/api/mocks/Scenarios","name":"Scenarios","methods":[{"method":"post","fn":"buildArea"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/GamesDB","route":"/bu/api/mocks/GamesDB","name":"GamesDB","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/SeasonsDB","route":"/bu/api/mocks/SeasonsDB","name":"SeasonsDB","methods":[{"method":"post","fn":"find"},{"method":"post","fn":"findOne"},{"method":"post","fn":"updateOne"},{"method":"post","fn":"deleteOne"},{"method":"post","fn":"deleteMany"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/SystemView","route":"/bu/api/mocks/SystemView","name":"SystemView","methods":[{"method":"post","fn":"trace"},{"method":"post","fn":"log"},{"method":"post","fn":"warn"},{"method":"post","fn":"error"},{"method":"post","fn":"debug"},{"method":"post","fn":"getLog"},{"method":"post","fn":"clearLog"}]},{"namespace":"ws://127.0.0.1:4300/bu/api/mocks/Plugin","route":"/bu/api/mocks/Plugin","name":"Plugin","methods":[{"method":"post","fn":"saveDoc"},{"method":"post","fn":"getDoc"},{"method":"post","fn":"getTests"},{"method":"post","fn":"saveTest"},{"method":"post","fn":"deleteTest"},{"method":"post","fn":"getSpecList"},{"method":"post","fn":"getConnection"},{"method":"post","fn":"getLog"},{"method":"post","fn":"getManifest"}]}],"host":"127.0.0.1","route":"/bu/api/mocks","port":"4300","serviceUrl":"http://127.0.0.1:4300/bu/api/mocks","socketPath":"/bu/api/mocks/socket.io","namespace":"ws://127.0.0.1:4300/bu/api/mocks","SystemLynxService":true},"modules":[{"name":"Badges","__constructor":{},"module":{}},{"name":"Locations","__constructor":{},"module":{}},{"name":"Users","__constructor":{},"module":{}},{"name":"UsersArchive","__constructor":{},"module":{}},{"name":"Tournaments","__constructor":{},"module":{}},{"name":"Teams","__constructor":{},"module":{}},{"name":"Groups","__constructor":{},"module":{}},{"name":"Events","__constructor":{},"module":{}},{"name":"Follows","__constructor":{},"module":{}},{"name":"Solicitations","__constructor":{},"module":{}},{"name":"PlayerOverallPerformance","__constructor":{},"module":{}},{"name":"PlayerSeasonalPerformance","__constructor":{},"module":{}},{"name":"PlayerPerGamePerformance","__constructor":{},"module":{}},{"name":"TeamOverallPerformance","__constructor":{},"module":{}},{"name":"TeamSeasonalPerformance","__constructor":{},"module":{}},{"name":"TeamPerGamePerformance","__constructor":{},"module":{}},{"name":"Broadcasts","__constructor":{},"module":{}},{"name":"Posts","__constructor":{},"module":{}},{"name":"Reactions","__constructor":{},"module":{}},{"name":"People","module":{}},{"name":"Games","module":{}},{"name":"Seasons","module":{}},{"name":"Media","module":{}},{"name":"Scenarios","module":{}},{"name":"GamesDB","__constructor":{},"module":{}},{"name":"SeasonsDB","__constructor":{},"module":{}},{"name":"SystemView","module":{}},{"name":"Plugin","module":{}}],"routing":{"route":"bu/api/mocks","port":"4300","host":"127.0.0.1","protocol":"http","ssl":null,"staticRouting":true},"services":[{"name":"Basketball","url":"http://127.0.0.1:4900/bu/api/basketball","onLoad":null,"client":{"Games":{},"Stats":{},"Seasons":{},"Aggregator":{},"Storage":{},"SystemView":{},"Plugin":{}}},{"name":"SystemViewUI","url":"http://localhost:3000/systemview/api","onLoad":null,"client":{"SystemView":{},"CLI":{}}}]},"specList":{"docs":["Mocks.md"],"tests":["Games.playOutGames.json","Media.createPosts.json","People.createPopulatedTeams.json","People.createUsers.json","Seasons.createPopulatedSeasons.json","Seasons.playOutSeasons.json"]}}]
package/api/index.js CHANGED
@@ -1,14 +1,21 @@
1
- const { HttpClient: http, createClient, App } = require("systemlynx");
1
+ const { createClient, App } = require("systemlynx");
2
+ const { createCookieHttpClient } = require("../cli/cookieClient");
3
+ const { headersFor } = require("../cli/manifestHeaders");
2
4
  const ConnectedServices = require("./Connections")();
3
5
  const CLIHistory = require("./CLIHistory")();
4
- const Client = createClient();
6
+ // The UI server calls services the same way the CLI does: through the manifest-header client,
7
+ // so operator-authored headers (e.g. an Origin for a gated dev session — see cli/manifestHeaders.js)
8
+ // are attached to every outbound call and every probe. One resolver, shared with the CLI; the UI is
9
+ // driven off the same manifest format (RFC-007). Without this the UI cannot reach a gated service.
10
+ const httpClient = createCookieHttpClient();
11
+ const Client = createClient(httpClient);
5
12
  const route = "systemview/api";
6
13
  const host = "localhost";
7
14
  const express = require("express");
8
15
  const path = require("path");
9
16
 
10
17
  const isUrl = (str) =>
11
- /^(http:\/\/|https:\/\/)?((localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}))(:[0-9]{1,5})?(\/.*)?$/.test(
18
+ /^(http:\/\/|https:\/\/)?((localhost|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})|([a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,}))(:[0-9]{1,5})?(\/.*)?$/i.test(
12
19
  str,
13
20
  );
14
21
 
@@ -45,25 +52,43 @@ function updateSpecList(specList, projectCode, serviceId) {
45
52
  }
46
53
  function getServices(searchText) {
47
54
  if (isUrl(searchText)) {
48
- const { service } = ConnectedServices.findService(searchText);
49
-
50
- if (service) {
51
- const project = { ...service, projectCode: "SystemLynx", serviceId: "Service" };
52
- connect(project);
53
- return [project];
54
- } else {
55
- return getConnectionData(searchText);
56
- }
55
+ // Always (re)pull from the URL — one URL brings in the whole project manifest. Don't short-circuit
56
+ // to a stored entry (the old path relabeled the project "SystemLynx" and skipped the manifest).
57
+ return getConnectionData(searchText);
57
58
  } else {
58
59
  return ConnectedServices.findProject(searchText);
59
60
  }
60
61
  }
61
62
 
63
+ // The UI's connect-by-URL. Always treats the input as a URL — no isUrl heuristic — so remote hosts
64
+ // and long TLDs (.global, .systems, …) that the heuristic mis-rejects still connect. Mirrors the
65
+ // CLI's `connect <url>`: probe → pull the whole project manifest.
66
+ function connectUrl(url) {
67
+ return getConnectionData(url);
68
+ }
69
+
62
70
  async function getConnectionData(url) {
63
71
  try {
64
- const connectionData = await http.request({ url });
72
+ const connectionData = await httpClient.request({ url });
65
73
  if (!connectionData || !connectionData.SystemLynxService) return [];
66
74
  const svc = Client.createService(connectionData);
75
+
76
+ // One URL → the whole project: try the plugin manifest first (every service), then fall back
77
+ // to this single service's connection, then a bare connected-services entry (no plugin).
78
+ try {
79
+ const manifest = await svc.Plugin.getManifest();
80
+ if (manifest && manifest.services && manifest.services.length) {
81
+ const projects = manifest.services.map((s) => ({
82
+ system: s.system,
83
+ projectCode: manifest.projectCode,
84
+ serviceId: s.serviceId,
85
+ specList: s.specList || { tests: [], docs: [] },
86
+ }));
87
+ projects.forEach(connect);
88
+ return projects;
89
+ }
90
+ } catch {}
91
+
67
92
  let project;
68
93
  try {
69
94
  const connection = await svc.Plugin.getConnection();
@@ -105,6 +130,10 @@ function getProjects() {
105
130
  connectionData: system.connectionData,
106
131
  system,
107
132
  specList: specList || { tests: [], docs: [] },
133
+ // Resolved headers for this service's origin (@file already deref'd to values, server-side —
134
+ // the browser has no filesystem). The UI calls svc.setHeaders(headers) after createService so
135
+ // every browser-run test/log/probe carries them. Same manifest.headers store as the CLI.
136
+ headers: headersFor(system.connectionData.serviceUrl),
108
137
  });
109
138
  });
110
139
  return projects;
@@ -135,6 +164,7 @@ module.exports = function launchSystemView(port = 3000) {
135
164
  })
136
165
  .module("SystemView", {
137
166
  connect,
167
+ connectUrl,
138
168
  getServices,
139
169
  getProjects,
140
170
  updateSpecList,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
- "main.css": "/static/css/main.42546597.css",
4
- "main.js": "/static/js/main.3d700bb2.js",
3
+ "main.css": "/static/css/main.87b2fd6a.css",
4
+ "main.js": "/static/js/main.5d6e3f47.js",
5
5
  "static/js/422.05c538a9.chunk.js": "/static/js/422.05c538a9.chunk.js",
6
6
  "static/media/FontsFree-Net-SFMono-Regular.ttf": "/static/media/FontsFree-Net-SFMono-Regular.9647425ef282c28529df.ttf",
7
7
  "static/media/loading.gif": "/static/media/loading.10ca842f103fd1282bdb.gif",
@@ -12,12 +12,12 @@
12
12
  "static/media/check.svg": "/static/media/check.c17549c742b818356d1a95bfa3b0404a.svg",
13
13
  "static/media/error.svg": "/static/media/error.1d9e99c1bb443d2374ef72a7205a5b71.svg",
14
14
  "static/media/x.svg": "/static/media/x.f680188c9bc9ed62e3647ad587e1bea0.svg",
15
- "main.42546597.css.map": "/static/css/main.42546597.css.map",
16
- "main.3d700bb2.js.map": "/static/js/main.3d700bb2.js.map",
15
+ "main.87b2fd6a.css.map": "/static/css/main.87b2fd6a.css.map",
16
+ "main.5d6e3f47.js.map": "/static/js/main.5d6e3f47.js.map",
17
17
  "422.05c538a9.chunk.js.map": "/static/js/422.05c538a9.chunk.js.map"
18
18
  },
19
19
  "entrypoints": [
20
- "static/css/main.42546597.css",
21
- "static/js/main.3d700bb2.js"
20
+ "static/css/main.87b2fd6a.css",
21
+ "static/js/main.5d6e3f47.js"
22
22
  ]
23
23
  }
package/build/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>SystemView</title><script defer="defer" src="/static/js/main.3d700bb2.js"></script><link href="/static/css/main.42546597.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>SystemView</title><script defer="defer" src="/static/js/main.5d6e3f47.js"></script><link href="/static/css/main.87b2fd6a.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>