@soundworks/core 3.6.0 → 4.0.0-alpha.0

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 (125) hide show
  1. package/.eslintrc +16 -0
  2. package/LICENSE +1 -1
  3. package/README.md +32 -30
  4. package/package.json +57 -26
  5. package/src/client/Client.js +391 -0
  6. package/src/client/Context.js +225 -0
  7. package/src/client/ContextManager.js +111 -0
  8. package/src/client/Plugin.js +66 -0
  9. package/src/client/PluginManager.js +123 -0
  10. package/src/client/SharedState.js +84 -0
  11. package/src/client/Socket.js +389 -0
  12. package/src/client/StateManager.js +67 -0
  13. package/src/client/index.js +77 -0
  14. package/src/common/BasePlugin.js +163 -0
  15. package/src/common/BasePluginManager.js +227 -0
  16. package/src/common/BaseSharedState.js +473 -0
  17. package/src/common/BaseStateManager.js +200 -0
  18. package/{common → src/common}/ParameterBag.js +82 -122
  19. package/{common → src/common}/SharedStatePrivate.js +56 -64
  20. package/src/common/constants.js +51 -0
  21. package/src/common/logger.js +154 -0
  22. package/src/common/promise-store.js +25 -0
  23. package/src/common/sockets-utils.js +73 -0
  24. package/src/common/utils.js +22 -0
  25. package/src/server/Client.js +50 -0
  26. package/src/server/Context.js +99 -0
  27. package/src/server/ContextManager.js +266 -0
  28. package/src/server/Plugin.js +77 -0
  29. package/src/server/PluginManager.js +150 -0
  30. package/src/server/Server.js +849 -0
  31. package/src/server/SharedState.js +86 -0
  32. package/{server → src/server}/Socket.js +119 -94
  33. package/{server → src/server}/Sockets.js +73 -61
  34. package/{common/SharedStateManagerServer.js → src/server/StateManager.js} +183 -131
  35. package/src/server/audit-network-latency.worker.js +57 -0
  36. package/src/server/audit-schema.js +42 -0
  37. package/src/server/index.js +45 -0
  38. package/tsconfig.json +21 -0
  39. package/types/client/Client.d.ts +194 -0
  40. package/types/client/Client.d.ts.map +1 -0
  41. package/types/client/Context.d.ts +139 -0
  42. package/types/client/Context.d.ts.map +1 -0
  43. package/types/client/ContextManager.d.ts +45 -0
  44. package/types/client/ContextManager.d.ts.map +1 -0
  45. package/types/client/Plugin.d.ts +53 -0
  46. package/types/client/Plugin.d.ts.map +1 -0
  47. package/types/client/PluginManager.d.ts +96 -0
  48. package/types/client/PluginManager.d.ts.map +1 -0
  49. package/types/client/SharedState.d.ts +85 -0
  50. package/types/client/SharedState.d.ts.map +1 -0
  51. package/types/client/Socket.d.ts +138 -0
  52. package/types/client/Socket.d.ts.map +1 -0
  53. package/types/client/StateManager.d.ts +72 -0
  54. package/types/client/StateManager.d.ts.map +1 -0
  55. package/types/client/index.d.ts +11 -0
  56. package/types/client/index.d.ts.map +1 -0
  57. package/types/common/BasePlugin.d.ts +145 -0
  58. package/types/common/BasePlugin.d.ts.map +1 -0
  59. package/types/common/BasePluginManager.d.ts +88 -0
  60. package/types/common/BasePluginManager.d.ts.map +1 -0
  61. package/types/common/BaseSharedState.d.ts +173 -0
  62. package/types/common/BaseSharedState.d.ts.map +1 -0
  63. package/types/common/BaseStateManager.d.ts +70 -0
  64. package/types/common/BaseStateManager.d.ts.map +1 -0
  65. package/types/common/ParameterBag.d.ts +143 -0
  66. package/types/common/ParameterBag.d.ts.map +1 -0
  67. package/types/common/SharedStatePrivate.d.ts +20 -0
  68. package/types/common/SharedStatePrivate.d.ts.map +1 -0
  69. package/types/common/constants.d.ts +35 -0
  70. package/types/common/constants.d.ts.map +1 -0
  71. package/types/common/logger.d.ts +16 -0
  72. package/types/common/logger.d.ts.map +1 -0
  73. package/types/common/promise-store.d.ts +4 -0
  74. package/types/common/promise-store.d.ts.map +1 -0
  75. package/types/common/sockets-utils.d.ts +9 -0
  76. package/types/common/sockets-utils.d.ts.map +1 -0
  77. package/types/common/utils.d.ts +5 -0
  78. package/types/common/utils.d.ts.map +1 -0
  79. package/types/server/Client.d.ts +40 -0
  80. package/types/server/Client.d.ts.map +1 -0
  81. package/types/server/Context.d.ts +59 -0
  82. package/types/server/Context.d.ts.map +1 -0
  83. package/types/server/ContextManager.d.ts +69 -0
  84. package/types/server/ContextManager.d.ts.map +1 -0
  85. package/types/server/Plugin.d.ts +70 -0
  86. package/types/server/Plugin.d.ts.map +1 -0
  87. package/types/server/PluginManager.d.ts +91 -0
  88. package/types/server/PluginManager.d.ts.map +1 -0
  89. package/types/server/Server.d.ts +223 -0
  90. package/types/server/Server.d.ts.map +1 -0
  91. package/types/server/SharedState.d.ts +86 -0
  92. package/types/server/SharedState.d.ts.map +1 -0
  93. package/types/server/Socket.d.ts +128 -0
  94. package/types/server/Socket.d.ts.map +1 -0
  95. package/types/server/Sockets.d.ts +73 -0
  96. package/types/server/Sockets.d.ts.map +1 -0
  97. package/types/server/StateManager.d.ts +190 -0
  98. package/types/server/StateManager.d.ts.map +1 -0
  99. package/types/server/audit-network-latency.worker.d.ts +2 -0
  100. package/types/server/audit-network-latency.worker.d.ts.map +1 -0
  101. package/types/server/audit-schema.d.ts +27 -0
  102. package/types/server/audit-schema.d.ts.map +1 -0
  103. package/types/server/index.d.ts +7 -0
  104. package/types/server/index.d.ts.map +1 -0
  105. package/client/AbstractExperience.js +0 -54
  106. package/client/AbstractPlugin.js +0 -230
  107. package/client/Client.js +0 -190
  108. package/client/PluginManager.js +0 -267
  109. package/client/Socket.js +0 -338
  110. package/client/index.js +0 -48
  111. package/client.js +0 -28
  112. package/common/SharedState.js +0 -480
  113. package/common/SharedStateManagerClient.js +0 -194
  114. package/common/Signal.js +0 -40
  115. package/common/SignalAll.js +0 -44
  116. package/common/shared-state-utils.js +0 -90
  117. package/common/sockets-encoder-decoder.js +0 -73
  118. package/server/AbstractExperience.js +0 -126
  119. package/server/AbstractPlugin.js +0 -211
  120. package/server/Client.js +0 -70
  121. package/server/PluginManager.js +0 -177
  122. package/server/Server.js +0 -746
  123. package/server/index.js +0 -49
  124. package/server/utils/logger.js +0 -134
  125. package/server.js +0 -28
package/server/index.js DELETED
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.Server = exports.AbstractExperience = void 0;
7
-
8
- var _Server2 = _interopRequireDefault(require("./Server.js"));
9
-
10
- var _AbstractExperience2 = _interopRequireDefault(require("./AbstractExperience.js"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * Server-side part of the *soundworks* framework.
16
- *
17
- * @namespace server
18
- *
19
- * @example
20
- * import soundworks from '@soundworks/core/server';
21
- *
22
- * const server = new soundworks.Server();
23
- *
24
- * server.registerService('delay-1', delayServiceFactory, { delayTime: 1 }, []);
25
- * server.registerService('delay-2', delayServiceFactory, { delayTime: 2 }, ['delay-1']);
26
- *
27
- * await server.init(envConfig, (clientType, config, httpRequest) => {
28
- * return { ...clientConfig };
29
- * });
30
- *
31
- * // serve static files
32
- * await server.router.use(serveStatic('public'));
33
- * await server.router.use('build', serveStatic('.build/public'));
34
- *
35
- * const playerExperience = new PlayerExperience(server, 'player');
36
- *
37
- * await server.start();
38
- * playerExperience.start();
39
- *
40
- */
41
- const AbstractExperience = _AbstractExperience2.default;
42
- exports.AbstractExperience = AbstractExperience;
43
- const Server = _Server2.default;
44
- exports.Server = Server;
45
- var _default = {
46
- AbstractExperience: _AbstractExperience2.default,
47
- Server: _Server2.default
48
- };
49
- exports.default = _default;
@@ -1,134 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _chalk = _interopRequireDefault(require("chalk"));
9
-
10
- var _columnify = _interopRequireDefault(require("columnify"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * @private
16
- */
17
- const logger = {
18
- verbose: true,
19
-
20
- configure(verbose) {
21
- this.verbose = verbose;
22
- },
23
-
24
- title(msg) {
25
- if (!this.verbose) {
26
- return;
27
- }
28
-
29
- console.log(_chalk.default.cyan(`+ ${msg}`));
30
- },
31
-
32
- clientConfigAndRouting(routes, config) {
33
- if (!this.verbose) {
34
- return;
35
- }
36
-
37
- const clientsConfig = config.app.clients;
38
- const serverIp = config.env.serverIp;
39
- const auth = config.env.auth;
40
- const table = [];
41
-
42
- for (let clientType in clientsConfig) {
43
- const client = clientsConfig[clientType];
44
-
45
- if (client.target === 'node') {
46
- const line = {
47
- client_type: `> ${clientType}`,
48
- target: _chalk.default.red(client.target),
49
- path: `server ip: ${_chalk.default.green(serverIp)}`,
50
- default: undefined,
51
- auth: undefined
52
- };
53
- table.push(line);
54
- } else if (client.target === 'browser') {
55
- const line = {
56
- client_type: `> ${clientType}`,
57
- target: _chalk.default.red(client.target),
58
- path: routes.find(r => r.clientType === clientType) ? _chalk.default.green(routes.find(r => r.clientType === clientType).path) : _chalk.default.red('no route defined'),
59
- default: client.default ? 'x' : undefined,
60
- auth: auth && auth.clients.indexOf(clientType) !== -1 ? 'x' : undefined
61
- };
62
- table.push(line);
63
- } else {
64
- console.log(`@warning: no target defined for client ${clientType}`);
65
- }
66
- }
67
-
68
- console.log(``);
69
- console.log((0, _columnify.default)(table, {
70
- showHeaders: true,
71
- minWidth: 6,
72
- columnSplitter: ' | ',
73
- config: {
74
- default: {
75
- align: 'center'
76
- },
77
- auth: {
78
- align: 'center'
79
- }
80
- }
81
- }));
82
- console.log(``); // check if a route is defined but not in config
83
-
84
- const configClientTypes = Object.keys(clientsConfig);
85
- routes.forEach(r => {
86
- if (configClientTypes.indexOf(r.clientType) === -1) {
87
- console.log(`@warning: no client config found for route ${r.clientType}`);
88
- }
89
- });
90
- },
91
-
92
- ip(protocol, address, port) {
93
- if (!this.verbose) {
94
- return;
95
- }
96
-
97
- console.log(` ${protocol}://${address}:${_chalk.default.green(port)}`);
98
- },
99
-
100
- pluginStart(name) {
101
- if (!this.verbose) {
102
- return;
103
- }
104
-
105
- console.log(` ${name} ${_chalk.default.yellow('start...')}`);
106
- },
107
-
108
- pluginStarted(name) {
109
- if (!this.verbose) {
110
- return;
111
- }
112
-
113
- console.log(` ${name} ${_chalk.default.cyan('started')}`);
114
- },
115
-
116
- pluginReady(name) {
117
- if (!this.verbose) {
118
- return;
119
- }
120
-
121
- console.log(` ${name} ${_chalk.default.green('ready')}`);
122
- },
123
-
124
- pluginErrored(name) {
125
- if (!this.verbose) {
126
- return;
127
- }
128
-
129
- console.log(` ${name} ${_chalk.default.red('errors')}`);
130
- }
131
-
132
- };
133
- var _default = logger;
134
- exports.default = _default;
package/server.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- /**
4
- * This is a dirty shortcut to enable cleaner import in template using `type=module`
5
- * This should be cleaned little by little...
6
- *
7
- * We need to define if we can be backward compatible there if we go to full module (probably not)
8
- */
9
- Object.defineProperty(exports, "__esModule", {
10
- value: true
11
- });
12
- exports.default = exports.Server = exports.AbstractExperience = void 0;
13
-
14
- var _Server2 = _interopRequireDefault(require("./server/Server.js"));
15
-
16
- var _AbstractExperience2 = _interopRequireDefault(require("./server/AbstractExperience.js"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- const AbstractExperience = _AbstractExperience2.default;
21
- exports.AbstractExperience = AbstractExperience;
22
- const Server = _Server2.default;
23
- exports.Server = Server;
24
- var _default = {
25
- AbstractExperience: _AbstractExperience2.default,
26
- Server: _Server2.default
27
- };
28
- exports.default = _default;