@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,51 +1,51 @@
1
- ## Exporting and Importing
2
-
3
- ### Data Format
4
-
5
- The format for an exported workspace looks like this:
6
-
7
- ```javascript
8
- {
9
- "name": "Workspace1",
10
- "windows": ["window1", "window2"],
11
- "groups": {},
12
- "workspaceDefinitionFlag": true,
13
- "windowData": [
14
- {
15
- ... descriptor for window 1 ...
16
- },
17
- {
18
- ... descriptor for window 2 ...
19
- }
20
- ]
21
- }
22
- ```
23
-
24
- The `workspaceDefinitionFlag` tells the Workspace Service that this is a workspace. Alternately, setting
25
- `templateDefinitionFlag` to `true` would tell Finsemble that this is a workspace template. Templates are currently not
26
- supported.
27
-
28
- ### File Format
29
-
30
- When workspaces are exported to a JSON file, the file is formatted in this manner:
31
-
32
- ```javascript
33
- {
34
- "workspaceTemplates": {
35
- "Workspace1": {
36
- "name": "Workspace1",
37
- "windows": [],
38
- "groups": {},
39
- "workspaceDefinitionFlag": true,
40
- "windowData": []
41
- },
42
- "Workspace2": {
43
- "name": "Workspace2",
44
- "windows": [],
45
- "groups": {},
46
- "workspaceDefinitionFlag": true,
47
- "windowData": []
48
- }
49
- }
50
- }
51
- ```
1
+ ## Exporting and Importing
2
+
3
+ ### Data Format
4
+
5
+ The format for an exported workspace looks like this:
6
+
7
+ ```javascript
8
+ {
9
+ "name": "Workspace1",
10
+ "windows": ["window1", "window2"],
11
+ "groups": {},
12
+ "workspaceDefinitionFlag": true,
13
+ "windowData": [
14
+ {
15
+ ... descriptor for window 1 ...
16
+ },
17
+ {
18
+ ... descriptor for window 2 ...
19
+ }
20
+ ]
21
+ }
22
+ ```
23
+
24
+ The `workspaceDefinitionFlag` tells the Workspace Service that this is a workspace. Alternately, setting
25
+ `templateDefinitionFlag` to `true` would tell Finsemble that this is a workspace template. Templates are currently not
26
+ supported.
27
+
28
+ ### File Format
29
+
30
+ When workspaces are exported to a JSON file, the file is formatted in this manner:
31
+
32
+ ```javascript
33
+ {
34
+ "workspaceTemplates": {
35
+ "Workspace1": {
36
+ "name": "Workspace1",
37
+ "windows": [],
38
+ "groups": {},
39
+ "workspaceDefinitionFlag": true,
40
+ "windowData": []
41
+ },
42
+ "Workspace2": {
43
+ "name": "Workspace2",
44
+ "windows": [],
45
+ "groups": {},
46
+ "workspaceDefinitionFlag": true,
47
+ "windowData": []
48
+ }
49
+ }
50
+ }
51
+ ```
@@ -1,62 +1,62 @@
1
- # Remotely Persisted Workspaces
2
-
3
- ## Requirements Summary
4
-
5
- The below summarizes the requirements, with the specification section clarifying the details.
6
-
7
- 1. A Finsemble user must be able to share and update though a global storage adaptor the same workspace across multiple
8
- computers. For example, if a user saves their workspace from their work desktop, they can later load and update the
9
- saved workspace from their home desktop.
10
-
11
- 1. On startup, Finsemble must return to the last used active workspace, even when working across multiple computers. For
12
- example, if the user’s last active workspace is “Workspace A” (running on their work desktop), then starting
13
- Finsemble at home will come up with “Workspace A” (even if “Workspace B” was the last workspace used at home).
14
-
15
- 1. Finsemble must limit the frequency of saving workspace data to master storage -- this is an essential underlying
16
- requirement for saving workspaces across machines using cloud-based storage adapters.
17
-
18
- ## Specifications
19
-
20
- 1. The workspace service must only write to the master storage when the workspace is explicitly saved by the end user.
21
- 1. The workspace service must only read from the master storage when the workspace is loaded.
22
- 1. The last active workspace name must be saved in master storage each time a workspace is loaded.
23
- 1. On startup if a default workspace isn’t specified in preferences, then the last active workspace name must be read
24
- from master storage to determine the initial workspace to load.
25
- 1. The integrity of the workspace definition in master storage must be maintained (i.e. storage writes must not leave a
26
- workspace definition is an inconsistent state if possible).
27
- 1. If there is an error reading master storage on startup, then a user notification must be issued and the active
28
- workspace read instead from cache storage.
29
- 1. If there is an error reading active-workspace on startup, after a master storage error, then a user notification must
30
- be issued and the empty workspace loaded.
31
- 1. If there is an error writing to the master storage, then a user prompt must be issued, giving the choice to continue
32
- without writing (losing changes) or stop the current operation (i.e. a switch or a shutdown).
33
- 1. If there is an error reading master storage on a switch operation, then a user notification must be issued and the
34
- switch terminated, leaving the active workspace unchanged.
35
-
36
- ## Startup Flow for Opening Initial Workspace
37
-
38
- ```mermaid
39
- graph TD;
40
- wait[wait for startup's User stage] --> checkForDefault;
41
- checkForDefault[is default workspace name defined in preferences] -->|defined|loadDefault;
42
- checkForDefault[is default workspace name defined in preferences] -->|not defined| readName;
43
- readName[read last-active-workspace-name from master storage] -->|successful| loadDefault;
44
- readName[read last-active-workspace-name from master storage] -->|error| readActive;
45
- loadDefault[load specified workspace from master storage] -->|successful| done;
46
- loadDefault[load specified workspace from master storage] -->|error| readActive;
47
- readActive[read active workspace from cache storage] -->|successful| done;
48
- readActive -->|error| loadEmpty;
49
- loadEmpty[load empty workspace] -->|always successful| done;
50
-
51
- ```
52
-
53
- ## Caveats
54
-
55
- 1. Multiple users concurrently sharing the same Finsemble account and workspaces from different computers is not
56
- supported because of extra underlying synchronization requirements -- each user must have their own account and
57
- actively use one machine at a time (staying logged in at work while working from home is allowed).
58
- 2. If a user is logged into multiple machines and moving between them, then changes made one machine won't be reflected
59
- on the other until a workspace reload is done. Also, if changes are made to the active workspaces on both machines
60
- without saving, then there is the potential to lose changes from one of the machines when later saving.
61
- 3. The above assumes no programmatic reading/writing of the remote workspace, either by client devs or by Finsemble code
62
- outside of the workspace service.
1
+ # Remotely Persisted Workspaces
2
+
3
+ ## Requirements Summary
4
+
5
+ The below summarizes the requirements, with the specification section clarifying the details.
6
+
7
+ 1. A Finsemble user must be able to share and update though a global storage adaptor the same workspace across multiple
8
+ computers. For example, if a user saves their workspace from their work desktop, they can later load and update the
9
+ saved workspace from their home desktop.
10
+
11
+ 1. On startup, Finsemble must return to the last used active workspace, even when working across multiple computers. For
12
+ example, if the user’s last active workspace is “Workspace A” (running on their work desktop), then starting
13
+ Finsemble at home will come up with “Workspace A” (even if “Workspace B” was the last workspace used at home).
14
+
15
+ 1. Finsemble must limit the frequency of saving workspace data to master storage -- this is an essential underlying
16
+ requirement for saving workspaces across machines using cloud-based storage adapters.
17
+
18
+ ## Specifications
19
+
20
+ 1. The workspace service must only write to the master storage when the workspace is explicitly saved by the end user.
21
+ 1. The workspace service must only read from the master storage when the workspace is loaded.
22
+ 1. The last active workspace name must be saved in master storage each time a workspace is loaded.
23
+ 1. On startup if a default workspace isn’t specified in preferences, then the last active workspace name must be read
24
+ from master storage to determine the initial workspace to load.
25
+ 1. The integrity of the workspace definition in master storage must be maintained (i.e. storage writes must not leave a
26
+ workspace definition is an inconsistent state if possible).
27
+ 1. If there is an error reading master storage on startup, then a user notification must be issued and the active
28
+ workspace read instead from cache storage.
29
+ 1. If there is an error reading active-workspace on startup, after a master storage error, then a user notification must
30
+ be issued and the empty workspace loaded.
31
+ 1. If there is an error writing to the master storage, then a user prompt must be issued, giving the choice to continue
32
+ without writing (losing changes) or stop the current operation (i.e. a switch or a shutdown).
33
+ 1. If there is an error reading master storage on a switch operation, then a user notification must be issued and the
34
+ switch terminated, leaving the active workspace unchanged.
35
+
36
+ ## Startup Flow for Opening Initial Workspace
37
+
38
+ ```mermaid
39
+ graph TD;
40
+ wait[wait for startup's User stage] --> checkForDefault;
41
+ checkForDefault[is default workspace name defined in preferences] -->|defined|loadDefault;
42
+ checkForDefault[is default workspace name defined in preferences] -->|not defined| readName;
43
+ readName[read last-active-workspace-name from master storage] -->|successful| loadDefault;
44
+ readName[read last-active-workspace-name from master storage] -->|error| readActive;
45
+ loadDefault[load specified workspace from master storage] -->|successful| done;
46
+ loadDefault[load specified workspace from master storage] -->|error| readActive;
47
+ readActive[read active workspace from cache storage] -->|successful| done;
48
+ readActive -->|error| loadEmpty;
49
+ loadEmpty[load empty workspace] -->|always successful| done;
50
+
51
+ ```
52
+
53
+ ## Caveats
54
+
55
+ 1. Multiple users concurrently sharing the same Finsemble account and workspaces from different computers is not
56
+ supported because of extra underlying synchronization requirements -- each user must have their own account and
57
+ actively use one machine at a time (staying logged in at work while working from home is allowed).
58
+ 2. If a user is logged into multiple machines and moving between them, then changes made one machine won't be reflected
59
+ on the other until a workspace reload is done. Also, if changes are made to the active workspaces on both machines
60
+ without saving, then there is the potential to lose changes from one of the machines when later saving.
61
+ 3. The above assumes no programmatic reading/writing of the remote workspace, either by client devs or by Finsemble code
62
+ outside of the workspace service.
@@ -1,18 +1,18 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <!--
5
- /*!
6
- * Copyright 2017 - 2020 by ChartIQ, Inc.
7
- * All rights reserved.
8
- */
9
- -->
10
-
11
- <head>
12
- <meta charset="utf-8" />
13
- <title>Workspace Service</title>
14
- <script src="./workspaceService.js"></script>
15
- </head>
16
-
17
- <body></body>
18
- </html>
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <!--
5
+ /*!
6
+ * Copyright 2017 - 2020 by ChartIQ, Inc.
7
+ * All rights reserved.
8
+ */
9
+ -->
10
+
11
+ <head>
12
+ <meta charset="utf-8" />
13
+ <title>Workspace Service</title>
14
+ <script src="./workspaceService.js"></script>
15
+ </head>
16
+
17
+ <body></body>
18
+ </html>
@@ -1,48 +1,48 @@
1
- {
2
- "definitions": {},
3
- "$schema": "http://json-schema.org/draft-07/schema#",
4
- "$id": "http://example.com/root.json",
5
- "type": "object",
6
- "title": "The Root Schema",
7
- "required": ["version", "name", "dirty", "windows", "type"],
8
- "properties": {
9
- "version": {
10
- "$id": "#/properties/version",
11
- "type": "string",
12
- "title": "The Version Schema",
13
- "default": "",
14
- "examples": ["1.0.0"],
15
- "pattern": "^(.*)$"
16
- },
17
- "name": {
18
- "$id": "#/properties/name",
19
- "type": "string",
20
- "title": "The Name Schema",
21
- "default": "",
22
- "examples": ["ws"],
23
- "pattern": "^(.*)$"
24
- },
25
- "dirty": {
26
- "$id": "#/properties/dirty",
27
- "type": "boolean",
28
- "title": "The Dirty Schema",
29
- "default": false,
30
- "examples": [false]
31
- },
32
- "windows": {
33
- "$id": "#/properties/windows",
34
- "type": "array",
35
- "title": "The Windows Schema",
36
- "default": null,
37
- "changeme": ""
38
- },
39
- "type": {
40
- "$id": "#/properties/type",
41
- "type": "string",
42
- "title": "The Type Schema",
43
- "default": "",
44
- "examples": ["workspace"],
45
- "pattern": "^(.*)$"
46
- }
47
- }
48
- }
1
+ {
2
+ "definitions": {},
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "$id": "http://example.com/root.json",
5
+ "type": "object",
6
+ "title": "The Root Schema",
7
+ "required": ["version", "name", "dirty", "windows", "type"],
8
+ "properties": {
9
+ "version": {
10
+ "$id": "#/properties/version",
11
+ "type": "string",
12
+ "title": "The Version Schema",
13
+ "default": "",
14
+ "examples": ["1.0.0"],
15
+ "pattern": "^(.*)$"
16
+ },
17
+ "name": {
18
+ "$id": "#/properties/name",
19
+ "type": "string",
20
+ "title": "The Name Schema",
21
+ "default": "",
22
+ "examples": ["ws"],
23
+ "pattern": "^(.*)$"
24
+ },
25
+ "dirty": {
26
+ "$id": "#/properties/dirty",
27
+ "type": "boolean",
28
+ "title": "The Dirty Schema",
29
+ "default": false,
30
+ "examples": [false]
31
+ },
32
+ "windows": {
33
+ "$id": "#/properties/windows",
34
+ "type": "array",
35
+ "title": "The Windows Schema",
36
+ "default": null,
37
+ "changeme": ""
38
+ },
39
+ "type": {
40
+ "$id": "#/properties/type",
41
+ "type": "string",
42
+ "title": "The Type Schema",
43
+ "default": "",
44
+ "examples": ["workspace"],
45
+ "pattern": "^(.*)$"
46
+ }
47
+ }
48
+ }