@finsemble/finsemble-core 6.1.4 → 6.1.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.
Files changed (107) hide show
  1. package/.mocharc.js +12 -12
  2. package/.nycrc.json +7 -7
  3. package/README.md +24 -24
  4. package/assets/fonts/LICENSE.txt +202 -202
  5. package/configs/core/config.json +214 -214
  6. package/configs/core/securityPolicies.json +24 -24
  7. package/configs/core/services.json +233 -233
  8. package/configs/schemas/README.md +1 -1
  9. package/configs/schemas/fileBasedSchemas/appdConfigFile.schema.json +5 -5
  10. package/configs/schemas/fileBasedSchemas/applicationConfigFile.schema.json +5 -5
  11. package/configs/schemas/fileBasedSchemas/componentsFile.schema.json +5 -5
  12. package/configs/schemas/fileBasedSchemas/coreConfigFile.schema.json +5 -5
  13. package/configs/schemas/fileBasedSchemas/dashbarFile.schema.json +5 -5
  14. package/configs/schemas/fileBasedSchemas/manifestFile.schema.json +5 -5
  15. package/configs/schemas/fileBasedSchemas/securityPoliciesFile.schema.json +5 -5
  16. package/configs/schemas/fileBasedSchemas/servicesFile.schema.json +5 -5
  17. package/configs/schemas/fileBasedSchemas/uiComponentsFile.schema.json +5 -5
  18. package/configs/schemas/fileBasedSchemas/workspacesFile.schema.json +5 -5
  19. package/configs/schemas/finsemble.schema.json +4006 -4006
  20. package/dist/FSBL.js +1 -1
  21. package/dist/clients/Interop/FinsembleDesktopAgent.md +154 -154
  22. package/dist/clients/Interop/tsconfig.json +7 -7
  23. package/dist/clients/Startup/README.md +28 -28
  24. package/dist/clients/dragAndDropAssets/dragAndDropScrim.css +54 -54
  25. package/dist/clients/dragAndDropAssets/ff-delete-circle.svg +10 -10
  26. package/dist/clients/dragAndDropAssets/ff-share.svg +13 -13
  27. package/dist/components/system/notification/ff-close.svg +14 -14
  28. package/dist/components/system/notification/finsemble_logo_white.svg +15 -15
  29. package/dist/components/system/notification/notification.html +155 -155
  30. package/dist/configs/core/config.json +214 -214
  31. package/dist/configs/core/securityPolicies.json +24 -24
  32. package/dist/configs/core/services.json +233 -233
  33. package/dist/configs/schemas/README.md +1 -1
  34. package/dist/configs/schemas/fileBasedSchemas/appdConfigFile.schema.json +5 -5
  35. package/dist/configs/schemas/fileBasedSchemas/applicationConfigFile.schema.json +5 -5
  36. package/dist/configs/schemas/fileBasedSchemas/componentsFile.schema.json +5 -5
  37. package/dist/configs/schemas/fileBasedSchemas/coreConfigFile.schema.json +5 -5
  38. package/dist/configs/schemas/fileBasedSchemas/dashbarFile.schema.json +5 -5
  39. package/dist/configs/schemas/fileBasedSchemas/manifestFile.schema.json +5 -5
  40. package/dist/configs/schemas/fileBasedSchemas/securityPoliciesFile.schema.json +5 -5
  41. package/dist/configs/schemas/fileBasedSchemas/servicesFile.schema.json +5 -5
  42. package/dist/configs/schemas/fileBasedSchemas/uiComponentsFile.schema.json +5 -5
  43. package/dist/configs/schemas/fileBasedSchemas/workspacesFile.schema.json +5 -5
  44. package/dist/configs/schemas/finsemble.schema.json +4006 -4006
  45. package/dist/finsemble-javascript-adapter.js +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/javascript-adapter-example-app.html +37 -37
  48. package/dist/services/Interop/DevTools.tsx +71 -71
  49. package/dist/services/Interop/Interop.html +15 -15
  50. package/dist/services/Interop/InteropService.js +1 -1
  51. package/dist/services/Interop/InteropService.md +148 -148
  52. package/dist/services/Interop/InteropServiceUI.css +12 -12
  53. package/dist/services/Interop/InteropServiceUI.js +1 -1
  54. package/dist/services/Interop/InteropServiceUI.tsx +39 -39
  55. package/dist/services/Interop/devtoolsEnhancer.tsx +63 -63
  56. package/dist/services/Interop/tsconfig.json +7 -7
  57. package/dist/services/ServiceTemplate.md +39 -39
  58. package/dist/services/assimilation/assimilation.html +18 -18
  59. package/dist/services/assimilation/assimilationService.js +1 -1
  60. package/dist/services/authentication/authentication.html +17 -17
  61. package/dist/services/authentication/authenticationService.js +1 -1
  62. package/dist/services/authentication/dialogSignOn.html +199 -199
  63. package/dist/services/config/config.html +17 -17
  64. package/dist/services/config/configService.js +1 -1
  65. package/dist/services/dataStore/dataStore.html +18 -18
  66. package/dist/services/dataStore/dataStoreService.js +1 -1
  67. package/dist/services/hotkeys/hotkeys.html +18 -18
  68. package/dist/services/hotkeys/hotkeysService.js +1 -1
  69. package/dist/services/linker/linker.html +18 -18
  70. package/dist/services/linker/linkerService.js +1 -1
  71. package/dist/services/logger/logger.html +18 -18
  72. package/dist/services/logger/loggerService.js +1 -1
  73. package/dist/services/logger/loggerUI.js +1 -1
  74. package/dist/services/logger/src/app.css +860 -860
  75. package/dist/services/logger/src/components/Views/Logs/rightPanel/consoleView.css +379 -379
  76. package/dist/services/logger/src/components/objectInspector/README.md +1 -1
  77. package/dist/services/notification/notification.html +11 -11
  78. package/dist/services/notification/notificationService.js +1 -1
  79. package/dist/services/preferences/preferencesService.js +1 -1
  80. package/dist/services/router/router.html +18 -18
  81. package/dist/services/router/routerService.js +1 -1
  82. package/dist/services/search/search.html +17 -17
  83. package/dist/services/search/searchService.js +1 -1
  84. package/dist/services/storage/adapters/instrumentedIndexedDBAdapter.js +1 -1
  85. package/dist/services/storage/storage.html +17 -17
  86. package/dist/services/storage/storageService.js +1 -1
  87. package/dist/services/systemManager/bootTasks/testTasks/_aReadMe.md +119 -119
  88. package/dist/services/systemManager/systemManager.html +24 -24
  89. package/dist/services/systemManager/systemManager.js +1 -1
  90. package/dist/services/window/Docking/GroupRequirements.md +18 -18
  91. package/dist/services/window/Splintering/SplinterAgentSlave.html +13 -13
  92. package/dist/services/window/Splintering/SplinterAgentSlave.js +1 -1
  93. package/dist/services/window/Splintering/Splintering.md +118 -118
  94. package/dist/services/window/StackedWindowManager/StackRequirements.md +23 -23
  95. package/dist/services/window/WindowBehaviorRequirements.md +25 -25
  96. package/dist/services/window/windowService.html +10 -10
  97. package/dist/services/window/windowService.js +1 -1
  98. package/dist/services/workspace/dev-docs/importExportFormat.md +51 -51
  99. package/dist/services/workspace/dev-docs/remotelyPersistedWorkspaces.md +62 -62
  100. package/dist/services/workspace/workspace.html +18 -18
  101. package/dist/services/workspace/workspace.schema.json +48 -48
  102. package/dist/services/workspace/workspaceService.js +1 -1
  103. package/package.json +1 -1
  104. package/tsconfig.json +23 -23
  105. package/types/index.d.ts +40 -55
  106. package/types/index.tsbuildinfo +1 -1
  107. package/types.tsconfig.json +15 -15
@@ -1,39 +1,39 @@
1
- import React from "react";
2
- import ReactDOM from "react-dom";
3
- import { Provider, useDispatch, useSelector } from "react-redux";
4
- import InteropService from "./InteropService";
5
- import store from "./store";
6
- import { DevToolsContainer } from "./DevTools";
7
- import root from "./modules/root";
8
- import { InteropStore } from "./types";
9
-
10
- const HeartbeatButton = () => {
11
- const dispatch = useDispatch();
12
- const state: InteropStore = useSelector((currentState: any) => currentState);
13
-
14
- const heartbeatAction = state.root.heartbeats ? "Stop Heartbeats" : "Start Heartbeats";
15
-
16
- const toggleHeartbeats = () => {
17
- dispatch(root.actions.toggleHeartbeats());
18
- };
19
-
20
- return <button onClick={toggleHeartbeats}>{heartbeatAction}</button>;
21
- };
22
-
23
- const InteropServiceUI = () => {
24
- const blah = 0;
25
-
26
- return (
27
- <Provider store={store}>
28
- <HeartbeatButton />
29
- <div className="devTools">
30
- <DevToolsContainer />
31
- </div>
32
- </Provider>
33
- );
34
- };
35
-
36
- ReactDOM.render(<InteropServiceUI />, document.getElementById("InteropServiceUI-tsx"));
37
-
38
- // This line is necessary for the service to start, otherwise webpack thinks it's not being used and doesn't run the file InteropService.ts
39
- const interopService = InteropService;
1
+ import React from "react";
2
+ import ReactDOM from "react-dom";
3
+ import { Provider, useDispatch, useSelector } from "react-redux";
4
+ import InteropService from "./InteropService";
5
+ import store from "./store";
6
+ import { DevToolsContainer } from "./DevTools";
7
+ import root from "./modules/root";
8
+ import { InteropStore } from "./types";
9
+
10
+ const HeartbeatButton = () => {
11
+ const dispatch = useDispatch();
12
+ const state: InteropStore = useSelector((currentState: any) => currentState);
13
+
14
+ const heartbeatAction = state.root.heartbeats ? "Stop Heartbeats" : "Start Heartbeats";
15
+
16
+ const toggleHeartbeats = () => {
17
+ dispatch(root.actions.toggleHeartbeats());
18
+ };
19
+
20
+ return <button onClick={toggleHeartbeats}>{heartbeatAction}</button>;
21
+ };
22
+
23
+ const InteropServiceUI = () => {
24
+ const blah = 0;
25
+
26
+ return (
27
+ <Provider store={store}>
28
+ <HeartbeatButton />
29
+ <div className="devTools">
30
+ <DevToolsContainer />
31
+ </div>
32
+ </Provider>
33
+ );
34
+ };
35
+
36
+ ReactDOM.render(<InteropServiceUI />, document.getElementById("InteropServiceUI-tsx"));
37
+
38
+ // This line is necessary for the service to start, otherwise webpack thinks it's not being used and doesn't run the file InteropService.ts
39
+ const interopService = InteropService;
@@ -1,63 +1,63 @@
1
- import { logMonitor } from "./DevTools";
2
- import { Children } from "react";
3
- import {
4
- liftReducerWith as wrapReducerWithDevToolsProfiler,
5
- unliftStore as unwrapDevToolsStore,
6
- unliftState as unwrapDevToolsState,
7
- } from "redux-devtools-instrument";
8
- import { Reducer } from "@reduxjs/toolkit";
9
- import { StoreEnhancer } from "@reduxjs/toolkit";
10
-
11
- const monitorReducer = (state, action) => Children.only(logMonitor).type.update(logMonitor.props, state, action);
12
-
13
- /**
14
- * For performance reasons, we want to dynamically bypass DevTools functionality when it's not in use.
15
- *
16
- * We know DevTools is in use based on Interop service's window visible or the `visibility` value in the service's config
17
- *
18
- * In order to bypass DevTools, we have to create our own store enhancer that will initialize DevTools and then
19
- * dynamically choose which reducer to dispatch actions to based on what state we're in.
20
- *
21
- */
22
- export default (function (doCreateStore) {
23
- return (currentReducer, preloadedState) => {
24
- const wrappedReducer = wrapReducerWithDevToolsProfiler(
25
- currentReducer,
26
- preloadedState,
27
- monitorReducer,
28
- {}
29
- ) as Reducer;
30
-
31
- let didInit = false;
32
-
33
- const reducer = (wrappedState, wrappedAction) => {
34
- if (!didInit) {
35
- didInit = true;
36
- return wrappedReducer(wrappedState, wrappedAction);
37
- }
38
-
39
- const unwrappedAction = wrappedAction.action;
40
- const unwrappedState = unwrapDevToolsState(wrappedState);
41
- const isWindowVisible = unwrappedState && unwrappedState.root.isVisible;
42
- const isDevToolsAction = wrappedAction.type !== "PERFORM_ACTION" || !unwrappedAction;
43
- const isBecomingVisible =
44
- unwrappedAction && unwrappedAction.type === "root/windowVisible" && unwrappedAction.payload === true;
45
-
46
- if (!isDevToolsAction && !isWindowVisible && !isBecomingVisible) {
47
- // bypass DevTools reducer if devtools window isn't visible
48
- wrappedState.computedStates[wrappedState.currentStateIndex].state = currentReducer(
49
- unwrappedState,
50
- unwrappedAction
51
- );
52
-
53
- return wrappedState;
54
- }
55
-
56
- return wrappedReducer(wrappedState, wrappedAction);
57
- };
58
-
59
- const wrappedStore = doCreateStore(reducer);
60
-
61
- return unwrapDevToolsStore(wrappedStore, reducer as any, {});
62
- };
63
- } as StoreEnhancer);
1
+ import { logMonitor } from "./DevTools";
2
+ import { Children } from "react";
3
+ import {
4
+ liftReducerWith as wrapReducerWithDevToolsProfiler,
5
+ unliftStore as unwrapDevToolsStore,
6
+ unliftState as unwrapDevToolsState,
7
+ } from "redux-devtools-instrument";
8
+ import { Reducer } from "@reduxjs/toolkit";
9
+ import { StoreEnhancer } from "@reduxjs/toolkit";
10
+
11
+ const monitorReducer = (state, action) => Children.only(logMonitor).type.update(logMonitor.props, state, action);
12
+
13
+ /**
14
+ * For performance reasons, we want to dynamically bypass DevTools functionality when it's not in use.
15
+ *
16
+ * We know DevTools is in use based on Interop service's window visible or the `visibility` value in the service's config
17
+ *
18
+ * In order to bypass DevTools, we have to create our own store enhancer that will initialize DevTools and then
19
+ * dynamically choose which reducer to dispatch actions to based on what state we're in.
20
+ *
21
+ */
22
+ export default (function (doCreateStore) {
23
+ return (currentReducer, preloadedState) => {
24
+ const wrappedReducer = wrapReducerWithDevToolsProfiler(
25
+ currentReducer,
26
+ preloadedState,
27
+ monitorReducer,
28
+ {}
29
+ ) as Reducer;
30
+
31
+ let didInit = false;
32
+
33
+ const reducer = (wrappedState, wrappedAction) => {
34
+ if (!didInit) {
35
+ didInit = true;
36
+ return wrappedReducer(wrappedState, wrappedAction);
37
+ }
38
+
39
+ const unwrappedAction = wrappedAction.action;
40
+ const unwrappedState = unwrapDevToolsState(wrappedState);
41
+ const isWindowVisible = unwrappedState && unwrappedState.root.isVisible;
42
+ const isDevToolsAction = wrappedAction.type !== "PERFORM_ACTION" || !unwrappedAction;
43
+ const isBecomingVisible =
44
+ unwrappedAction && unwrappedAction.type === "root/windowVisible" && unwrappedAction.payload === true;
45
+
46
+ if (!isDevToolsAction && !isWindowVisible && !isBecomingVisible) {
47
+ // bypass DevTools reducer if devtools window isn't visible
48
+ wrappedState.computedStates[wrappedState.currentStateIndex].state = currentReducer(
49
+ unwrappedState,
50
+ unwrappedAction
51
+ );
52
+
53
+ return wrappedState;
54
+ }
55
+
56
+ return wrappedReducer(wrappedState, wrappedAction);
57
+ };
58
+
59
+ const wrappedStore = doCreateStore(reducer);
60
+
61
+ return unwrapDevToolsStore(wrappedStore, reducer as any, {});
62
+ };
63
+ } as StoreEnhancer);
@@ -1,7 +1,7 @@
1
- {
2
- "extends": "../../../tsconfig.json",
3
- "compilerOptions": {
4
- //"noImplicitAny": true,
5
- "strict": true
6
- }
7
- }
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ //"noImplicitAny": true,
5
+ "strict": true
6
+ }
7
+ }
@@ -1,39 +1,39 @@
1
- \*\*\* See storageService for a template.
2
-
3
- Notes
4
-
5
- 1. Endpoints inside of `createRouterEndpoints` should be grouped by endpoint type, and then alphabetized. All listeners
6
- go together, then responders, then pub/sub responders. Remember that this isn't so that the code makes sense to the
7
- guy who wrote it, it's to help someone unfamiliar with the code jump in and quickly understand what's going on.
8
- 2. Router handlers should modify the incoming message (if necessary), and pass off any input into a member function.
9
- When the member function is done, the router handler will interface directly with the router. If the member function
10
- is big, hard to follow, and does async things, you should consider using async/await. In some cases this complicates
11
- rather than simplifies the code, so use your discretion. Ask another dev if you're concerned.
12
- 3. `initialize` should be the first member function.
13
- 4. `createRouterEndpoints` should be the second member function.
14
- 5. `bindCorrectContext` should be the third member function (if it's necessary).
15
- 6. Member functions should be alphabetized, but getters and setters should be grouped. (e.g., Dingle, Eagle, Roger,
16
- getStore, setStore, Truck).
17
- 7. Put a global reference to the service on the window at the bottom of your file for quick debugging.
18
- 8. Document each function. Include a description, and document the parameters that are passed in.
19
- 9. _Logging_
20
-
21
- - `error`: Should be obvious.
22
-
23
- - `warn`: More contentious, but do your best. Generally, a warning for something that's wrong but not
24
- system-critical. "Hey you shouldn't do this."
25
-
26
- - `log`: Used for lifecycle notifications. E.g., Workspace load, window close, etc. If you aren't sure if it counts
27
- as the application lifecycle, ask two other people to weigh in.
28
-
29
- - `info`: Each entry point into the API should have `Logger.system.info(SERVICE_NAME.METHOD_NAME, description,
30
- pertinentFunctionInput). Data should only be included if necessary.
31
-
32
- - `debug`: Put debug messages around areas that you're likely to need to look at to solve problems later.
33
-
34
- - `verbose`: Only the most egregious logs go here. E.g., assimilation/docking move events. Router client messages,
35
- etc.
36
-
37
- Client-side
38
-
39
- 1. Queries and transmitters should be wrapped in client functions. Only query/transmit from one place.
1
+ \*\*\* See storageService for a template.
2
+
3
+ Notes
4
+
5
+ 1. Endpoints inside of `createRouterEndpoints` should be grouped by endpoint type, and then alphabetized. All listeners
6
+ go together, then responders, then pub/sub responders. Remember that this isn't so that the code makes sense to the
7
+ guy who wrote it, it's to help someone unfamiliar with the code jump in and quickly understand what's going on.
8
+ 2. Router handlers should modify the incoming message (if necessary), and pass off any input into a member function.
9
+ When the member function is done, the router handler will interface directly with the router. If the member function
10
+ is big, hard to follow, and does async things, you should consider using async/await. In some cases this complicates
11
+ rather than simplifies the code, so use your discretion. Ask another dev if you're concerned.
12
+ 3. `initialize` should be the first member function.
13
+ 4. `createRouterEndpoints` should be the second member function.
14
+ 5. `bindCorrectContext` should be the third member function (if it's necessary).
15
+ 6. Member functions should be alphabetized, but getters and setters should be grouped. (e.g., Dingle, Eagle, Roger,
16
+ getStore, setStore, Truck).
17
+ 7. Put a global reference to the service on the window at the bottom of your file for quick debugging.
18
+ 8. Document each function. Include a description, and document the parameters that are passed in.
19
+ 9. _Logging_
20
+
21
+ - `error`: Should be obvious.
22
+
23
+ - `warn`: More contentious, but do your best. Generally, a warning for something that's wrong but not
24
+ system-critical. "Hey you shouldn't do this."
25
+
26
+ - `log`: Used for lifecycle notifications. E.g., Workspace load, window close, etc. If you aren't sure if it counts
27
+ as the application lifecycle, ask two other people to weigh in.
28
+
29
+ - `info`: Each entry point into the API should have `Logger.system.info(SERVICE_NAME.METHOD_NAME, description,
30
+ pertinentFunctionInput). Data should only be included if necessary.
31
+
32
+ - `debug`: Put debug messages around areas that you're likely to need to look at to solve problems later.
33
+
34
+ - `verbose`: Only the most egregious logs go here. E.g., assimilation/docking move events. Router client messages,
35
+ etc.
36
+
37
+ Client-side
38
+
39
+ 1. Queries and transmitters should be wrapped in client functions. Only query/transmit from one place.
@@ -1,18 +1,18 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <!--
4
- /*!
5
- * Copyright 2017 - 2020 by ChartIQ, Inc.
6
- * All rights reserved.
7
- */
8
- -->
9
-
10
- <head>
11
- <meta charset="utf-8" />
12
- <title>Assimilation Service</title>
13
- </head>
14
-
15
- <body></body>
16
-
17
- <script src="./assimilationService.js"></script>
18
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <!--
4
+ /*!
5
+ * Copyright 2017 - 2020 by ChartIQ, Inc.
6
+ * All rights reserved.
7
+ */
8
+ -->
9
+
10
+ <head>
11
+ <meta charset="utf-8" />
12
+ <title>Assimilation Service</title>
13
+ </head>
14
+
15
+ <body></body>
16
+
17
+ <script src="./assimilationService.js"></script>
18
+ </html>