cyberia 3.1.3 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +0 -2
- package/.github/workflows/engine-cyberia.cd.yml +10 -8
- package/.github/workflows/engine-cyberia.ci.yml +12 -29
- package/.github/workflows/ghpkg.ci.yml +4 -4
- package/.github/workflows/npmpkg.ci.yml +28 -11
- package/.github/workflows/publish.ci.yml +21 -2
- package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -5
- package/.github/workflows/pwa-microservices-template-test.ci.yml +3 -3
- package/.github/workflows/release.cd.yml +13 -8
- package/CHANGELOG.md +433 -1
- package/CLI-HELP.md +57 -7
- package/Dockerfile +4 -2
- package/README.md +347 -22
- package/bin/build.js +5 -2
- package/bin/cyberia.js +1789 -112
- package/bin/deploy.js +177 -124
- package/bin/file.js +3 -0
- package/bin/index.js +1789 -112
- package/conf.js +64 -8
- package/deployment.yaml +92 -20
- package/hardhat/hardhat.config.js +13 -13
- package/hardhat/ignition/modules/ObjectLayerToken.js +1 -1
- package/hardhat/package-lock.json +2554 -5859
- package/hardhat/package.json +13 -22
- package/hardhat/scripts/deployObjectLayerToken.js +1 -1
- package/hardhat/test/ObjectLayerToken.js +4 -2
- package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
- package/hardhat/types/ethers-contracts/common.ts +92 -0
- package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
- package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
- package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
- package/hardhat/types/ethers-contracts/index.ts +6 -0
- package/jsdoc.dd-cyberia.json +64 -55
- package/jsdoc.json +64 -55
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +5 -4
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +5 -4
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +92 -20
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +54 -18
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/dd-test-development/deployment.yaml +88 -74
- package/manifests/deployment/dd-test-development/proxy.yaml +13 -4
- package/manifests/deployment/playwright/deployment.yaml +1 -1
- package/nodemon.json +1 -1
- package/package.json +22 -16
- package/proxy.yaml +54 -18
- package/scripts/rhel-grpc-setup.sh +56 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +44 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +16 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
- package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +80 -7
- package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +93 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
- package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
- package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
- package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
- package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
- package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +368 -0
- package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
- package/src/api/cyberia-instance/cyberia-instance.model.js +84 -0
- package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
- package/src/api/cyberia-instance/cyberia-instance.service.js +191 -0
- package/src/api/cyberia-instance/cyberia-portal-connector.js +486 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +413 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +228 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
- package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +42 -0
- package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
- package/src/api/cyberia-map/cyberia-map.model.js +30 -0
- package/src/api/cyberia-map/cyberia-map.router.js +40 -0
- package/src/api/cyberia-map/cyberia-map.service.js +74 -0
- package/src/api/file/file.ref.json +18 -0
- package/src/api/ipfs/ipfs.controller.js +4 -25
- package/src/api/ipfs/ipfs.model.js +43 -34
- package/src/api/ipfs/ipfs.router.js +8 -13
- package/src/api/ipfs/ipfs.service.js +54 -102
- package/src/api/object-layer/README.md +347 -22
- package/src/api/object-layer/object-layer.router.js +30 -0
- package/src/api/object-layer/object-layer.service.js +114 -31
- package/src/api/user/user.service.js +8 -7
- package/src/cli/cluster.js +7 -7
- package/src/cli/db.js +710 -827
- package/src/cli/deploy.js +151 -93
- package/src/cli/env.js +29 -0
- package/src/cli/fs.js +5 -2
- package/src/cli/index.js +48 -2
- package/src/cli/kubectl.js +211 -0
- package/src/cli/release.js +284 -0
- package/src/cli/repository.js +438 -75
- package/src/cli/run.js +195 -35
- package/src/cli/secrets.js +73 -0
- package/src/cli/test.js +3 -3
- package/src/client/Cryptokoyn.index.js +3 -4
- package/src/client/CyberiaPortal.index.js +3 -4
- package/src/client/Default.index.js +3 -4
- package/src/client/Itemledger.index.js +3 -4
- package/src/client/Underpost.index.js +3 -4
- package/src/client/components/core/AppStore.js +69 -0
- package/src/client/components/core/CalendarCore.js +2 -2
- package/src/client/components/core/DropDown.js +137 -17
- package/src/client/components/core/Keyboard.js +2 -2
- package/src/client/components/core/LogIn.js +2 -2
- package/src/client/components/core/LogOut.js +2 -2
- package/src/client/components/core/Modal.js +0 -1
- package/src/client/components/core/Panel.js +0 -1
- package/src/client/components/core/PanelForm.js +19 -19
- package/src/client/components/core/SocketIo.js +82 -29
- package/src/client/components/core/SocketIoHandler.js +75 -0
- package/src/client/components/core/Stream.js +143 -95
- package/src/client/components/core/Webhook.js +40 -7
- package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
- package/src/client/components/cryptokoyn/LogInCryptokoyn.js +3 -3
- package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +2 -2
- package/src/client/components/cryptokoyn/MenuCryptokoyn.js +3 -3
- package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +3 -51
- package/src/client/components/cyberia/InstanceEngineCyberia.js +700 -0
- package/src/client/components/cyberia/MapEngineCyberia.js +1359 -2
- package/src/client/components/cyberia/ObjectLayerEngineModal.js +17 -6
- package/src/client/components/cyberia/ObjectLayerEngineViewer.js +92 -54
- package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
- package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +216 -30
- package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +3 -3
- package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +2 -2
- package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +40 -7
- package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +4 -0
- package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +3 -49
- package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -0
- package/src/client/components/default/AppStoreDefault.js +5 -0
- package/src/client/components/default/LogInDefault.js +3 -3
- package/src/client/components/default/LogOutDefault.js +2 -2
- package/src/client/components/default/MenuDefault.js +5 -5
- package/src/client/components/default/SocketIoDefault.js +3 -51
- package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
- package/src/client/components/itemledger/LogInItemledger.js +3 -3
- package/src/client/components/itemledger/LogOutItemledger.js +2 -2
- package/src/client/components/itemledger/MenuItemledger.js +3 -3
- package/src/client/components/itemledger/SocketIoItemledger.js +3 -51
- package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
- package/src/client/components/underpost/LogInUnderpost.js +3 -3
- package/src/client/components/underpost/LogOutUnderpost.js +2 -2
- package/src/client/components/underpost/MenuUnderpost.js +5 -5
- package/src/client/components/underpost/SocketIoUnderpost.js +3 -51
- package/src/client/services/core/core.service.js +20 -8
- package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +105 -0
- package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
- package/src/client/services/cyberia-entity/cyberia-entity.service.js +105 -0
- package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
- package/src/client/services/cyberia-instance/cyberia-instance.service.js +122 -0
- package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +105 -0
- package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
- package/src/client/services/cyberia-map/cyberia-map.service.js +126 -0
- package/src/client/services/instance/instance.management.js +2 -2
- package/src/client/services/ipfs/ipfs.service.js +3 -23
- package/src/client/services/object-layer/object-layer.management.js +3 -3
- package/src/client/services/object-layer/object-layer.service.js +21 -0
- package/src/client/services/user/user.management.js +2 -2
- package/src/client/ssr/pages/CyberiaServerMetrics.js +1 -1
- package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +305 -0
- package/src/grpc/cyberia/README.md +326 -0
- package/src/grpc/cyberia/grpc-server.js +530 -0
- package/src/index.js +24 -1
- package/src/runtime/express/Dockerfile +4 -0
- package/src/runtime/express/Express.js +18 -1
- package/src/runtime/lampp/Dockerfile +13 -2
- package/src/runtime/lampp/Lampp.js +27 -4
- package/src/runtime/wp/Dockerfile +68 -0
- package/src/runtime/wp/Wp.js +639 -0
- package/src/server/auth.js +24 -1
- package/src/server/backup.js +37 -9
- package/src/server/client-build-docs.js +9 -2
- package/src/server/client-build.js +31 -31
- package/src/server/client-formatted.js +109 -57
- package/src/server/conf.js +24 -9
- package/src/server/cron.js +25 -23
- package/src/server/dns.js +2 -1
- package/src/server/ipfs-client.js +24 -1
- package/src/server/object-layer.js +149 -108
- package/src/server/peer.js +8 -0
- package/src/server/runtime.js +25 -1
- package/src/server/semantic-layer-generator-floor.js +359 -0
- package/src/server/semantic-layer-generator-skin.js +1294 -0
- package/src/server/semantic-layer-generator.js +116 -555
- package/src/server/start.js +2 -2
- package/src/ws/IoInterface.js +1 -10
- package/src/ws/IoServer.js +14 -33
- package/src/ws/core/channels/core.ws.chat.js +65 -20
- package/src/ws/core/channels/core.ws.mailer.js +113 -32
- package/src/ws/core/channels/core.ws.stream.js +90 -31
- package/src/ws/core/core.ws.connection.js +12 -33
- package/src/ws/core/core.ws.emit.js +10 -26
- package/src/ws/core/core.ws.server.js +25 -58
- package/src/ws/default/channels/default.ws.main.js +53 -12
- package/src/ws/default/default.ws.connection.js +26 -13
- package/src/ws/default/default.ws.server.js +30 -12
- package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
- package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
- package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
- package/src/client/components/default/ElementsDefault.js +0 -38
- package/src/client/components/itemledger/CommonItemledger.js +0 -29
- package/src/client/components/itemledger/ElementsItemledger.js +0 -38
- package/src/client/components/underpost/CommonUnderpost.js +0 -29
- package/src/client/components/underpost/ElementsUnderpost.js +0 -38
- package/src/ws/core/management/core.ws.chat.js +0 -8
- package/src/ws/core/management/core.ws.mailer.js +0 -16
- package/src/ws/core/management/core.ws.stream.js +0 -8
- package/src/ws/default/management/default.ws.main.js +0 -8
|
@@ -1,76 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @module ws/core.ws.server
|
|
4
|
-
* @namespace CoreWsServer
|
|
2
|
+
* Core WebSocket server factory — initializes channels and creates the Socket.IO server.
|
|
3
|
+
* @module ws/core/core.ws.server
|
|
5
4
|
*/
|
|
6
5
|
|
|
7
6
|
'use strict';
|
|
8
7
|
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import http from 'http'; // Added for JSDoc type hinting
|
|
15
|
-
|
|
16
|
-
// https://socket.io/docs/v3/
|
|
8
|
+
import { IoServer } from '../IoServer.js';
|
|
9
|
+
import { CoreWsConnectionHandler } from './core.ws.connection.js';
|
|
10
|
+
import { CoreWsChatChannel } from './channels/core.ws.chat.js';
|
|
11
|
+
import { CoreWsMailerChannel } from './channels/core.ws.mailer.js';
|
|
12
|
+
import { CoreWsStreamChannel } from './channels/core.ws.stream.js';
|
|
17
13
|
|
|
18
14
|
/**
|
|
19
|
-
* @class
|
|
20
|
-
* @
|
|
21
|
-
*
|
|
22
|
-
* @classdesc Manages the creation and initialization of the main WebSocket server,
|
|
23
|
-
* including setting up the management instances for all channels.
|
|
15
|
+
* @class CoreWsServer
|
|
16
|
+
* @classdesc Creates the core WebSocket server, initializing all channel state
|
|
17
|
+
* before attaching the connection handler.
|
|
24
18
|
*/
|
|
25
|
-
class
|
|
19
|
+
class CoreWsServer {
|
|
26
20
|
/**
|
|
27
|
-
* Initializes channel
|
|
28
|
-
*
|
|
29
|
-
* @
|
|
30
|
-
* @
|
|
31
|
-
* @param {
|
|
32
|
-
* @
|
|
33
|
-
* @param {string} options.host - The host address.
|
|
34
|
-
* @param {string} options.path - The base path for the API.
|
|
35
|
-
* @returns {Promise<Object>} The result object from IoServer creation.
|
|
21
|
+
* Initializes channel state and creates the Socket.IO server.
|
|
22
|
+
* @param {import('http').Server} httpServer
|
|
23
|
+
* @param {Object} options
|
|
24
|
+
* @param {string} options.host
|
|
25
|
+
* @param {string} options.path
|
|
26
|
+
* @returns {{ options: import('socket.io').ServerOptions, ioServer: import('socket.io').Server, meta: ImportMeta }}
|
|
36
27
|
*/
|
|
37
|
-
static
|
|
28
|
+
static create(httpServer, options) {
|
|
38
29
|
const { host, path } = options;
|
|
39
|
-
if (!host || !path) {
|
|
40
|
-
throw new Error('Host and path must be provided in server options.');
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Create a unique identifier for this server instance's management context
|
|
44
30
|
const wsManagementId = `${host}${path}`;
|
|
45
31
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
CoreWsStreamManagement.instance(wsManagementId);
|
|
32
|
+
CoreWsChatChannel.init(wsManagementId);
|
|
33
|
+
CoreWsMailerChannel.init(wsManagementId);
|
|
34
|
+
CoreWsStreamChannel.init(wsManagementId);
|
|
50
35
|
|
|
51
|
-
|
|
52
|
-
return IoServerClass.create(httpServer, options, (socket) => CoreWsConnection(socket, wsManagementId));
|
|
36
|
+
return IoServer.create(httpServer, options, (socket) => CoreWsConnectionHandler.handle(socket, wsManagementId));
|
|
53
37
|
}
|
|
54
38
|
}
|
|
55
39
|
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
* @memberof CoreWsServer
|
|
59
|
-
* @function createIoServer
|
|
60
|
-
* @param {http.Server} httpServer - The HTTP server instance.
|
|
61
|
-
* @param {Object} options - Configuration options.
|
|
62
|
-
* @returns {Promise<Object>} The server creation result.
|
|
63
|
-
*/
|
|
64
|
-
const createIoServer = CoreWsServerClass.create;
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Backward compatibility alias.
|
|
68
|
-
* @memberof CoreWsServer
|
|
69
|
-
* @function CoreWsServer
|
|
70
|
-
* @param {import('http').Server} httpServer - The HTTP server instance.
|
|
71
|
-
* @param {Object} options - Configuration options.
|
|
72
|
-
* @returns {Promise<Object>} The server creation result.
|
|
73
|
-
*/
|
|
74
|
-
const CoreWsServer = createIoServer;
|
|
40
|
+
/** Required by Express.js dynamic import: `const { createIoServer } = await import(...)` */
|
|
41
|
+
const createIoServer = CoreWsServer.create.bind(CoreWsServer);
|
|
75
42
|
|
|
76
|
-
export {
|
|
43
|
+
export { CoreWsServer, createIoServer };
|
|
@@ -1,16 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Default "main" WebSocket channel — minimal no-op channel.
|
|
3
|
+
* @module ws/default/channels/default.ws.main
|
|
4
|
+
*/
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
const logger = loggerFactory(import.meta);
|
|
6
|
+
import { IoChannel } from '../../IoInterface.js';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
8
|
+
/**
|
|
9
|
+
* @class DefaultWsMainChannel
|
|
10
|
+
* @classdesc Provides a no-op main channel for the default WebSocket server.
|
|
11
|
+
*/
|
|
12
|
+
class DefaultWsMainChannel {
|
|
13
|
+
/** @type {Object.<string, Object>} Per-instance state keyed by wsManagementId. */
|
|
14
|
+
static #state = {};
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
/** @type {IoChannel} */
|
|
17
|
+
static #io = new IoChannel({ channel: 'main' });
|
|
15
18
|
|
|
16
|
-
|
|
19
|
+
/** @returns {Object.<string, import('socket.io').Socket>} Connected sockets map. */
|
|
20
|
+
static get client() {
|
|
21
|
+
return this.#io.client;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** @returns {string} Channel name. */
|
|
25
|
+
static get channel() {
|
|
26
|
+
return this.#io.channel;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Initializes state for a server instance.
|
|
31
|
+
* @param {string} wsManagementId
|
|
32
|
+
*/
|
|
33
|
+
static init(wsManagementId) {
|
|
34
|
+
this.#state[wsManagementId] = {};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Registers a socket connection.
|
|
39
|
+
* @param {import('socket.io').Socket} socket
|
|
40
|
+
* @param {string} wsManagementId
|
|
41
|
+
*/
|
|
42
|
+
static connection(socket, wsManagementId) {
|
|
43
|
+
return this.#io.connection(socket, wsManagementId);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Handles socket disconnection.
|
|
48
|
+
* @param {import('socket.io').Socket} socket
|
|
49
|
+
* @param {string} reason
|
|
50
|
+
* @param {string} wsManagementId
|
|
51
|
+
*/
|
|
52
|
+
static disconnect(socket, reason, wsManagementId) {
|
|
53
|
+
return this.#io.disconnect(socket, reason, wsManagementId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export { DefaultWsMainChannel };
|
|
@@ -1,22 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default WebSocket connection handler — wires sockets to the main channel.
|
|
3
|
+
* @module ws/default/default.ws.connection
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
import { loggerFactory } from '../../server/logger.js';
|
|
2
7
|
import { DefaultWsMainChannel } from './channels/default.ws.main.js';
|
|
3
8
|
|
|
4
9
|
const logger = loggerFactory(import.meta);
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @class DefaultWsConnectionHandler
|
|
13
|
+
* @classdesc Subscribes a new socket to the default main channel
|
|
14
|
+
* and delegates disconnect events.
|
|
15
|
+
*/
|
|
16
|
+
class DefaultWsConnectionHandler {
|
|
17
|
+
/**
|
|
18
|
+
* Handles a new WebSocket connection.
|
|
19
|
+
* @param {import('socket.io').Socket} socket
|
|
20
|
+
* @param {string} wsManagementId
|
|
21
|
+
*/
|
|
22
|
+
static handle(socket, wsManagementId) {
|
|
23
|
+
logger.info(`DefaultWsConnection ${socket.id}`);
|
|
12
24
|
|
|
13
|
-
|
|
25
|
+
DefaultWsMainChannel.connection(socket, wsManagementId);
|
|
14
26
|
|
|
15
|
-
|
|
16
|
-
|
|
27
|
+
socket.on('disconnect', (reason) => {
|
|
28
|
+
logger.info(`DefaultWsConnection ${socket.id} due to reason: ${reason}`);
|
|
17
29
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
30
|
+
DefaultWsMainChannel.disconnect(socket, reason, wsManagementId);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
21
34
|
|
|
22
|
-
export {
|
|
35
|
+
export { DefaultWsConnectionHandler };
|
|
@@ -1,20 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default WebSocket server factory — initializes the main channel and creates the Socket.IO server.
|
|
3
|
+
* @module ws/default/default.ws.server
|
|
4
|
+
*/
|
|
5
|
+
|
|
1
6
|
'use strict';
|
|
2
7
|
|
|
3
8
|
import { IoServer } from '../IoServer.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
// https://socket.io/docs/v3/
|
|
9
|
+
import { DefaultWsConnectionHandler } from './default.ws.connection.js';
|
|
10
|
+
import { DefaultWsMainChannel } from './channels/default.ws.main.js';
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @class DefaultWsServer
|
|
14
|
+
* @classdesc Creates the default WebSocket server with a single main channel.
|
|
15
|
+
*/
|
|
16
|
+
class DefaultWsServer {
|
|
17
|
+
/**
|
|
18
|
+
* Initializes the main channel and creates the Socket.IO server.
|
|
19
|
+
* @param {import('http').Server} httpServer
|
|
20
|
+
* @param {Object} options
|
|
21
|
+
* @param {string} options.host
|
|
22
|
+
* @param {string} options.path
|
|
23
|
+
* @returns {{ options: import('socket.io').ServerOptions, ioServer: import('socket.io').Server, meta: ImportMeta }}
|
|
24
|
+
*/
|
|
25
|
+
static create(httpServer, options) {
|
|
26
|
+
const { host, path } = options;
|
|
27
|
+
const wsManagementId = `${host}${path}`;
|
|
12
28
|
|
|
13
|
-
|
|
29
|
+
DefaultWsMainChannel.init(wsManagementId);
|
|
14
30
|
|
|
15
|
-
|
|
16
|
-
}
|
|
31
|
+
return IoServer.create(httpServer, options, (socket) => DefaultWsConnectionHandler.handle(socket, wsManagementId));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
17
34
|
|
|
18
|
-
const
|
|
35
|
+
/** Required by Express.js dynamic import: `const { createIoServer } = await import(...)` */
|
|
36
|
+
const createIoServer = DefaultWsServer.create.bind(DefaultWsServer);
|
|
19
37
|
|
|
20
|
-
export {
|
|
38
|
+
export { DefaultWsServer, createIoServer };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const ModelElement = {
|
|
2
|
-
user: () => {
|
|
3
|
-
return {
|
|
4
|
-
user: {
|
|
5
|
-
_id: '',
|
|
6
|
-
},
|
|
7
|
-
};
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const BaseElement = () => {
|
|
12
|
-
return {
|
|
13
|
-
user: {
|
|
14
|
-
main: {
|
|
15
|
-
model: {
|
|
16
|
-
...ModelElement.user(),
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
chat: {},
|
|
21
|
-
mailer: {},
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const CryptokoynParams = {
|
|
26
|
-
EVENT_CALLBACK_TIME: 45,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { BaseElement, ModelElement, CryptokoynParams };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
-
import { BaseElement } from './CommonCryptokoyn.js';
|
|
3
|
-
|
|
4
|
-
const logger = loggerFactory(import.meta);
|
|
5
|
-
|
|
6
|
-
const ElementsCryptokoyn = {
|
|
7
|
-
Data: BaseElement(),
|
|
8
|
-
Interval: {},
|
|
9
|
-
LocalDataScope: {},
|
|
10
|
-
Init: function (options = { type: 'user', id: 'main', element: {} }) {
|
|
11
|
-
const { type, id, element } = options;
|
|
12
|
-
this.Data[type][id] = {
|
|
13
|
-
...BaseElement()[type].main,
|
|
14
|
-
...this.Data[type][id],
|
|
15
|
-
...element,
|
|
16
|
-
};
|
|
17
|
-
if (!this.Interval[type]) this.Interval[type] = {};
|
|
18
|
-
if (!this.Interval[type][id]) this.Interval[type][id] = {};
|
|
19
|
-
if (!this.LocalDataScope[type]) this.LocalDataScope[type] = {};
|
|
20
|
-
if (!this.LocalDataScope[type][id])
|
|
21
|
-
this.LocalDataScope[type][id] = {
|
|
22
|
-
path: [],
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
removeAll: function () {
|
|
26
|
-
for (const type of Object.keys(this.Data)) {
|
|
27
|
-
for (const id of Object.keys(this.Data[type])) {
|
|
28
|
-
if (this.Interval[type] && this.Interval[type][id]) {
|
|
29
|
-
for (const interval of Object.keys(this.Interval[type][id])) clearInterval(this.Interval[type][id][interval]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.Interval = {};
|
|
34
|
-
this.Data = BaseElement();
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ElementsCryptokoyn };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
-
import { BaseElement } from './CommonCyberiaPortal.js';
|
|
3
|
-
|
|
4
|
-
const logger = loggerFactory(import.meta);
|
|
5
|
-
|
|
6
|
-
const ElementsCyberiaPortal = {
|
|
7
|
-
Data: BaseElement(),
|
|
8
|
-
Interval: {},
|
|
9
|
-
LocalDataScope: {},
|
|
10
|
-
Init: function (options = { type: 'user', id: 'main', element: {} }) {
|
|
11
|
-
const { type, id, element } = options;
|
|
12
|
-
this.Data[type][id] = {
|
|
13
|
-
...BaseElement()[type].main,
|
|
14
|
-
...this.Data[type][id],
|
|
15
|
-
...element,
|
|
16
|
-
};
|
|
17
|
-
if (!this.Interval[type]) this.Interval[type] = {};
|
|
18
|
-
if (!this.Interval[type][id]) this.Interval[type][id] = {};
|
|
19
|
-
if (!this.LocalDataScope[type]) this.LocalDataScope[type] = {};
|
|
20
|
-
if (!this.LocalDataScope[type][id])
|
|
21
|
-
this.LocalDataScope[type][id] = {
|
|
22
|
-
path: [],
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
removeAll: function () {
|
|
26
|
-
for (const type of Object.keys(this.Data)) {
|
|
27
|
-
for (const id of Object.keys(this.Data[type])) {
|
|
28
|
-
if (this.Interval[type] && this.Interval[type][id]) {
|
|
29
|
-
for (const interval of Object.keys(this.Interval[type][id])) clearInterval(this.Interval[type][id][interval]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.Interval = {};
|
|
34
|
-
this.Data = BaseElement();
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ElementsCyberiaPortal };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
-
import { BaseElement } from './CommonDefault.js';
|
|
3
|
-
|
|
4
|
-
const logger = loggerFactory(import.meta);
|
|
5
|
-
|
|
6
|
-
const ElementsDefault = {
|
|
7
|
-
Data: BaseElement(),
|
|
8
|
-
Interval: {},
|
|
9
|
-
LocalDataScope: {},
|
|
10
|
-
Init: function (options = { type: 'user', id: 'main', element: {} }) {
|
|
11
|
-
const { type, id, element } = options;
|
|
12
|
-
this.Data[type][id] = {
|
|
13
|
-
...BaseElement()[type].main,
|
|
14
|
-
...this.Data[type][id],
|
|
15
|
-
...element,
|
|
16
|
-
};
|
|
17
|
-
if (!this.Interval[type]) this.Interval[type] = {};
|
|
18
|
-
if (!this.Interval[type][id]) this.Interval[type][id] = {};
|
|
19
|
-
if (!this.LocalDataScope[type]) this.LocalDataScope[type] = {};
|
|
20
|
-
if (!this.LocalDataScope[type][id])
|
|
21
|
-
this.LocalDataScope[type][id] = {
|
|
22
|
-
path: [],
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
removeAll: function () {
|
|
26
|
-
for (const type of Object.keys(this.Data)) {
|
|
27
|
-
for (const id of Object.keys(this.Data[type])) {
|
|
28
|
-
if (this.Interval[type] && this.Interval[type][id]) {
|
|
29
|
-
for (const interval of Object.keys(this.Interval[type][id])) clearInterval(this.Interval[type][id][interval]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.Interval = {};
|
|
34
|
-
this.Data = BaseElement();
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ElementsDefault };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const ModelElement = {
|
|
2
|
-
user: () => {
|
|
3
|
-
return {
|
|
4
|
-
user: {
|
|
5
|
-
_id: '',
|
|
6
|
-
},
|
|
7
|
-
};
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const BaseElement = () => {
|
|
12
|
-
return {
|
|
13
|
-
user: {
|
|
14
|
-
main: {
|
|
15
|
-
model: {
|
|
16
|
-
...ModelElement.user(),
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
chat: {},
|
|
21
|
-
mailer: {},
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const ItemledgerParams = {
|
|
26
|
-
EVENT_CALLBACK_TIME: 45,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { BaseElement, ModelElement, ItemledgerParams };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
-
import { BaseElement } from './CommonItemledger.js';
|
|
3
|
-
|
|
4
|
-
const logger = loggerFactory(import.meta);
|
|
5
|
-
|
|
6
|
-
const ElementsItemledger = {
|
|
7
|
-
Data: BaseElement(),
|
|
8
|
-
Interval: {},
|
|
9
|
-
LocalDataScope: {},
|
|
10
|
-
Init: function (options = { type: 'user', id: 'main', element: {} }) {
|
|
11
|
-
const { type, id, element } = options;
|
|
12
|
-
this.Data[type][id] = {
|
|
13
|
-
...BaseElement()[type].main,
|
|
14
|
-
...this.Data[type][id],
|
|
15
|
-
...element,
|
|
16
|
-
};
|
|
17
|
-
if (!this.Interval[type]) this.Interval[type] = {};
|
|
18
|
-
if (!this.Interval[type][id]) this.Interval[type][id] = {};
|
|
19
|
-
if (!this.LocalDataScope[type]) this.LocalDataScope[type] = {};
|
|
20
|
-
if (!this.LocalDataScope[type][id])
|
|
21
|
-
this.LocalDataScope[type][id] = {
|
|
22
|
-
path: [],
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
removeAll: function () {
|
|
26
|
-
for (const type of Object.keys(this.Data)) {
|
|
27
|
-
for (const id of Object.keys(this.Data[type])) {
|
|
28
|
-
if (this.Interval[type] && this.Interval[type][id]) {
|
|
29
|
-
for (const interval of Object.keys(this.Interval[type][id])) clearInterval(this.Interval[type][id][interval]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.Interval = {};
|
|
34
|
-
this.Data = BaseElement();
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ElementsItemledger };
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
const ModelElement = {
|
|
2
|
-
user: () => {
|
|
3
|
-
return {
|
|
4
|
-
user: {
|
|
5
|
-
_id: '',
|
|
6
|
-
},
|
|
7
|
-
};
|
|
8
|
-
},
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const BaseElement = () => {
|
|
12
|
-
return {
|
|
13
|
-
user: {
|
|
14
|
-
main: {
|
|
15
|
-
model: {
|
|
16
|
-
...ModelElement.user(),
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
chat: {},
|
|
21
|
-
mailer: {},
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
const UnderpostParams = {
|
|
26
|
-
EVENT_CALLBACK_TIME: 45,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export { BaseElement, ModelElement, UnderpostParams };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { loggerFactory } from '../core/Logger.js';
|
|
2
|
-
import { BaseElement } from './CommonUnderpost.js';
|
|
3
|
-
|
|
4
|
-
const logger = loggerFactory(import.meta);
|
|
5
|
-
|
|
6
|
-
const ElementsUnderpost = {
|
|
7
|
-
Data: BaseElement(),
|
|
8
|
-
Interval: {},
|
|
9
|
-
LocalDataScope: {},
|
|
10
|
-
Init: function (options = { type: 'user', id: 'main', element: {} }) {
|
|
11
|
-
const { type, id, element } = options;
|
|
12
|
-
this.Data[type][id] = {
|
|
13
|
-
...BaseElement()[type].main,
|
|
14
|
-
...this.Data[type][id],
|
|
15
|
-
...element,
|
|
16
|
-
};
|
|
17
|
-
if (!this.Interval[type]) this.Interval[type] = {};
|
|
18
|
-
if (!this.Interval[type][id]) this.Interval[type][id] = {};
|
|
19
|
-
if (!this.LocalDataScope[type]) this.LocalDataScope[type] = {};
|
|
20
|
-
if (!this.LocalDataScope[type][id])
|
|
21
|
-
this.LocalDataScope[type][id] = {
|
|
22
|
-
path: [],
|
|
23
|
-
};
|
|
24
|
-
},
|
|
25
|
-
removeAll: function () {
|
|
26
|
-
for (const type of Object.keys(this.Data)) {
|
|
27
|
-
for (const id of Object.keys(this.Data[type])) {
|
|
28
|
-
if (this.Interval[type] && this.Interval[type][id]) {
|
|
29
|
-
for (const interval of Object.keys(this.Interval[type][id])) clearInterval(this.Interval[type][id][interval]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
this.Interval = {};
|
|
34
|
-
this.Data = BaseElement();
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export { ElementsUnderpost };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
const CoreWsMailerManagement = {
|
|
2
|
-
element: {},
|
|
3
|
-
instance: function (wsManagementId = '') {
|
|
4
|
-
this.element[wsManagementId] = {};
|
|
5
|
-
},
|
|
6
|
-
getUserWsId: function (wsManagementId = '', id = '') {
|
|
7
|
-
for (const userWsId of Object.keys(this.element[wsManagementId])) {
|
|
8
|
-
if (this.element[wsManagementId][userWsId].model.user._id === id) {
|
|
9
|
-
return userWsId;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return undefined;
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export { CoreWsMailerManagement };
|