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.
Files changed (208) hide show
  1. package/.env.example +0 -2
  2. package/.github/workflows/engine-cyberia.cd.yml +10 -8
  3. package/.github/workflows/engine-cyberia.ci.yml +12 -29
  4. package/.github/workflows/ghpkg.ci.yml +4 -4
  5. package/.github/workflows/npmpkg.ci.yml +28 -11
  6. package/.github/workflows/publish.ci.yml +21 -2
  7. package/.github/workflows/pwa-microservices-template-page.cd.yml +4 -5
  8. package/.github/workflows/pwa-microservices-template-test.ci.yml +3 -3
  9. package/.github/workflows/release.cd.yml +13 -8
  10. package/CHANGELOG.md +433 -1
  11. package/CLI-HELP.md +57 -7
  12. package/Dockerfile +4 -2
  13. package/README.md +347 -22
  14. package/bin/build.js +5 -2
  15. package/bin/cyberia.js +1789 -112
  16. package/bin/deploy.js +177 -124
  17. package/bin/file.js +3 -0
  18. package/bin/index.js +1789 -112
  19. package/conf.js +64 -8
  20. package/deployment.yaml +92 -20
  21. package/hardhat/hardhat.config.js +13 -13
  22. package/hardhat/ignition/modules/ObjectLayerToken.js +1 -1
  23. package/hardhat/package-lock.json +2554 -5859
  24. package/hardhat/package.json +13 -22
  25. package/hardhat/scripts/deployObjectLayerToken.js +1 -1
  26. package/hardhat/test/ObjectLayerToken.js +4 -2
  27. package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
  28. package/hardhat/types/ethers-contracts/common.ts +92 -0
  29. package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
  30. package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
  31. package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
  32. package/hardhat/types/ethers-contracts/index.ts +6 -0
  33. package/jsdoc.dd-cyberia.json +64 -55
  34. package/jsdoc.json +64 -55
  35. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +5 -4
  36. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +5 -4
  37. package/manifests/deployment/dd-cyberia-development/deployment.yaml +92 -20
  38. package/manifests/deployment/dd-cyberia-development/proxy.yaml +54 -18
  39. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  40. package/manifests/deployment/dd-test-development/deployment.yaml +88 -74
  41. package/manifests/deployment/dd-test-development/proxy.yaml +13 -4
  42. package/manifests/deployment/playwright/deployment.yaml +1 -1
  43. package/nodemon.json +1 -1
  44. package/package.json +22 -16
  45. package/proxy.yaml +54 -18
  46. package/scripts/rhel-grpc-setup.sh +56 -0
  47. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +44 -0
  48. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +16 -0
  49. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +5 -0
  50. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +80 -7
  51. package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +93 -0
  52. package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
  53. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +29 -0
  54. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +51 -0
  55. package/src/api/cyberia-entity/cyberia-entity.controller.js +74 -0
  56. package/src/api/cyberia-entity/cyberia-entity.model.js +24 -0
  57. package/src/api/cyberia-entity/cyberia-entity.router.js +27 -0
  58. package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
  59. package/src/api/cyberia-instance/cyberia-fallback-world.js +368 -0
  60. package/src/api/cyberia-instance/cyberia-instance.controller.js +92 -0
  61. package/src/api/cyberia-instance/cyberia-instance.model.js +84 -0
  62. package/src/api/cyberia-instance/cyberia-instance.router.js +63 -0
  63. package/src/api/cyberia-instance/cyberia-instance.service.js +191 -0
  64. package/src/api/cyberia-instance/cyberia-portal-connector.js +486 -0
  65. package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +74 -0
  66. package/src/api/cyberia-instance-conf/cyberia-instance-conf.defaults.js +413 -0
  67. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +228 -0
  68. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +27 -0
  69. package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +42 -0
  70. package/src/api/cyberia-map/cyberia-map.controller.js +79 -0
  71. package/src/api/cyberia-map/cyberia-map.model.js +30 -0
  72. package/src/api/cyberia-map/cyberia-map.router.js +40 -0
  73. package/src/api/cyberia-map/cyberia-map.service.js +74 -0
  74. package/src/api/file/file.ref.json +18 -0
  75. package/src/api/ipfs/ipfs.controller.js +4 -25
  76. package/src/api/ipfs/ipfs.model.js +43 -34
  77. package/src/api/ipfs/ipfs.router.js +8 -13
  78. package/src/api/ipfs/ipfs.service.js +54 -102
  79. package/src/api/object-layer/README.md +347 -22
  80. package/src/api/object-layer/object-layer.router.js +30 -0
  81. package/src/api/object-layer/object-layer.service.js +114 -31
  82. package/src/api/user/user.service.js +8 -7
  83. package/src/cli/cluster.js +7 -7
  84. package/src/cli/db.js +710 -827
  85. package/src/cli/deploy.js +151 -93
  86. package/src/cli/env.js +29 -0
  87. package/src/cli/fs.js +5 -2
  88. package/src/cli/index.js +48 -2
  89. package/src/cli/kubectl.js +211 -0
  90. package/src/cli/release.js +284 -0
  91. package/src/cli/repository.js +438 -75
  92. package/src/cli/run.js +195 -35
  93. package/src/cli/secrets.js +73 -0
  94. package/src/cli/test.js +3 -3
  95. package/src/client/Cryptokoyn.index.js +3 -4
  96. package/src/client/CyberiaPortal.index.js +3 -4
  97. package/src/client/Default.index.js +3 -4
  98. package/src/client/Itemledger.index.js +3 -4
  99. package/src/client/Underpost.index.js +3 -4
  100. package/src/client/components/core/AppStore.js +69 -0
  101. package/src/client/components/core/CalendarCore.js +2 -2
  102. package/src/client/components/core/DropDown.js +137 -17
  103. package/src/client/components/core/Keyboard.js +2 -2
  104. package/src/client/components/core/LogIn.js +2 -2
  105. package/src/client/components/core/LogOut.js +2 -2
  106. package/src/client/components/core/Modal.js +0 -1
  107. package/src/client/components/core/Panel.js +0 -1
  108. package/src/client/components/core/PanelForm.js +19 -19
  109. package/src/client/components/core/SocketIo.js +82 -29
  110. package/src/client/components/core/SocketIoHandler.js +75 -0
  111. package/src/client/components/core/Stream.js +143 -95
  112. package/src/client/components/core/Webhook.js +40 -7
  113. package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
  114. package/src/client/components/cryptokoyn/LogInCryptokoyn.js +3 -3
  115. package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +2 -2
  116. package/src/client/components/cryptokoyn/MenuCryptokoyn.js +3 -3
  117. package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +3 -51
  118. package/src/client/components/cyberia/InstanceEngineCyberia.js +700 -0
  119. package/src/client/components/cyberia/MapEngineCyberia.js +1359 -2
  120. package/src/client/components/cyberia/ObjectLayerEngineModal.js +17 -6
  121. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +92 -54
  122. package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
  123. package/src/client/components/cyberia-portal/CommonCyberiaPortal.js +216 -30
  124. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +3 -3
  125. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +2 -2
  126. package/src/client/components/cyberia-portal/MenuCyberiaPortal.js +40 -7
  127. package/src/client/components/cyberia-portal/RoutesCyberiaPortal.js +4 -0
  128. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +3 -49
  129. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +4 -0
  130. package/src/client/components/default/AppStoreDefault.js +5 -0
  131. package/src/client/components/default/LogInDefault.js +3 -3
  132. package/src/client/components/default/LogOutDefault.js +2 -2
  133. package/src/client/components/default/MenuDefault.js +5 -5
  134. package/src/client/components/default/SocketIoDefault.js +3 -51
  135. package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
  136. package/src/client/components/itemledger/LogInItemledger.js +3 -3
  137. package/src/client/components/itemledger/LogOutItemledger.js +2 -2
  138. package/src/client/components/itemledger/MenuItemledger.js +3 -3
  139. package/src/client/components/itemledger/SocketIoItemledger.js +3 -51
  140. package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
  141. package/src/client/components/underpost/LogInUnderpost.js +3 -3
  142. package/src/client/components/underpost/LogOutUnderpost.js +2 -2
  143. package/src/client/components/underpost/MenuUnderpost.js +5 -5
  144. package/src/client/components/underpost/SocketIoUnderpost.js +3 -51
  145. package/src/client/services/core/core.service.js +20 -8
  146. package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +105 -0
  147. package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
  148. package/src/client/services/cyberia-entity/cyberia-entity.service.js +105 -0
  149. package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
  150. package/src/client/services/cyberia-instance/cyberia-instance.service.js +122 -0
  151. package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +105 -0
  152. package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
  153. package/src/client/services/cyberia-map/cyberia-map.service.js +126 -0
  154. package/src/client/services/instance/instance.management.js +2 -2
  155. package/src/client/services/ipfs/ipfs.service.js +3 -23
  156. package/src/client/services/object-layer/object-layer.management.js +3 -3
  157. package/src/client/services/object-layer/object-layer.service.js +21 -0
  158. package/src/client/services/user/user.management.js +2 -2
  159. package/src/client/ssr/pages/CyberiaServerMetrics.js +1 -1
  160. package/src/grpc/cyberia/OFF_CHAIN_ECONOMY.md +305 -0
  161. package/src/grpc/cyberia/README.md +326 -0
  162. package/src/grpc/cyberia/grpc-server.js +530 -0
  163. package/src/index.js +24 -1
  164. package/src/runtime/express/Dockerfile +4 -0
  165. package/src/runtime/express/Express.js +18 -1
  166. package/src/runtime/lampp/Dockerfile +13 -2
  167. package/src/runtime/lampp/Lampp.js +27 -4
  168. package/src/runtime/wp/Dockerfile +68 -0
  169. package/src/runtime/wp/Wp.js +639 -0
  170. package/src/server/auth.js +24 -1
  171. package/src/server/backup.js +37 -9
  172. package/src/server/client-build-docs.js +9 -2
  173. package/src/server/client-build.js +31 -31
  174. package/src/server/client-formatted.js +109 -57
  175. package/src/server/conf.js +24 -9
  176. package/src/server/cron.js +25 -23
  177. package/src/server/dns.js +2 -1
  178. package/src/server/ipfs-client.js +24 -1
  179. package/src/server/object-layer.js +149 -108
  180. package/src/server/peer.js +8 -0
  181. package/src/server/runtime.js +25 -1
  182. package/src/server/semantic-layer-generator-floor.js +359 -0
  183. package/src/server/semantic-layer-generator-skin.js +1294 -0
  184. package/src/server/semantic-layer-generator.js +116 -555
  185. package/src/server/start.js +2 -2
  186. package/src/ws/IoInterface.js +1 -10
  187. package/src/ws/IoServer.js +14 -33
  188. package/src/ws/core/channels/core.ws.chat.js +65 -20
  189. package/src/ws/core/channels/core.ws.mailer.js +113 -32
  190. package/src/ws/core/channels/core.ws.stream.js +90 -31
  191. package/src/ws/core/core.ws.connection.js +12 -33
  192. package/src/ws/core/core.ws.emit.js +10 -26
  193. package/src/ws/core/core.ws.server.js +25 -58
  194. package/src/ws/default/channels/default.ws.main.js +53 -12
  195. package/src/ws/default/default.ws.connection.js +26 -13
  196. package/src/ws/default/default.ws.server.js +30 -12
  197. package/src/client/components/cryptokoyn/CommonCryptokoyn.js +0 -29
  198. package/src/client/components/cryptokoyn/ElementsCryptokoyn.js +0 -38
  199. package/src/client/components/cyberia-portal/ElementsCyberiaPortal.js +0 -38
  200. package/src/client/components/default/ElementsDefault.js +0 -38
  201. package/src/client/components/itemledger/CommonItemledger.js +0 -29
  202. package/src/client/components/itemledger/ElementsItemledger.js +0 -38
  203. package/src/client/components/underpost/CommonUnderpost.js +0 -29
  204. package/src/client/components/underpost/ElementsUnderpost.js +0 -38
  205. package/src/ws/core/management/core.ws.chat.js +0 -8
  206. package/src/ws/core/management/core.ws.mailer.js +0 -16
  207. package/src/ws/core/management/core.ws.stream.js +0 -8
  208. package/src/ws/default/management/default.ws.main.js +0 -8
@@ -1,11 +1,11 @@
1
1
  import { LogOut } from '../core/LogOut.js';
2
2
  import { s } from '../core/VanillaJs.js';
3
- import { ElementsCyberiaPortal } from './ElementsCyberiaPortal.js';
3
+ import { AppStoreCyberiaPortal } from './AppStoreCyberiaPortal.js';
4
4
  import { ObjectLayerManagement } from '../../services/object-layer/object-layer.management.js';
5
5
 
6
6
  const LogOutCyberiaPortal = async function () {
7
7
  LogOut.Event['LogOutCyberiaPortal'] = async (result = { user: { _id: '' } }) => {
8
- ElementsCyberiaPortal.Data.user.main.model.user = result.user;
8
+ AppStoreCyberiaPortal.Data.user.main.model.user = result.user;
9
9
  s(`.main-btn-admin`).classList.add('hide');
10
10
  await ObjectLayerManagement.Reload('viewer');
11
11
  };
@@ -18,7 +18,7 @@ import { SignUp } from '../core/SignUp.js';
18
18
  import { Translate } from '../core/Translate.js';
19
19
  import { htmls, s } from '../core/VanillaJs.js';
20
20
  import { getProxyPath, setQueryParams } from '../core/Router.js';
21
- import { ElementsCyberiaPortal } from './ElementsCyberiaPortal.js';
21
+ import { AppStoreCyberiaPortal } from './AppStoreCyberiaPortal.js';
22
22
  import Sortable from 'sortablejs';
23
23
  import { RouterCyberiaPortal, BannerAppTemplate } from './RoutesCyberiaPortal.js';
24
24
  import { SettingsCyberiaPortal } from './SettingsCyberiaPortal.js';
@@ -30,6 +30,7 @@ import { ObjectLayerEngineViewer } from '../cyberia/ObjectLayerEngineViewer.js';
30
30
  import { ObjectLayerManagement } from '../../services/object-layer/object-layer.management.js';
31
31
  import { MainBodyCyberiaPortal } from './MainBodyCyberiaPortal.js';
32
32
  import { MapEngineCyberia } from '../cyberia/MapEngineCyberia.js';
33
+ import { InstanceEngineCyberia } from '../cyberia/InstanceEngineCyberia.js';
33
34
 
34
35
  const MenuCyberiaPortal = {
35
36
  Data: {},
@@ -236,6 +237,18 @@ const MenuCyberiaPortal = {
236
237
  handleContainerClass: 'handle-btn-container',
237
238
  tooltipHtml: await Badge.Render(buildBadgeToolTipMenuOption('cyberia-map-engine')),
238
239
  })}
240
+ ${await BtnIcon.Render({
241
+ class: 'in wfa main-btn-menu main-btn-cyberia-instance-engine',
242
+ useMenuBtn: true,
243
+ label: renderMenuLabel({
244
+ icon: html`<img class="inl cyberia-menu-icon" src="${getProxyPath()}assets/ui-icons/engine.png" />`,
245
+ text: html`<span class="menu-label-text">${Translate.Render('cyberia-instance-engine')}</span>`,
246
+ }),
247
+ attrs: `data-id="cyberia-instance-engine"`,
248
+ tabHref: `${getProxyPath()}cyberia-instance-engine`,
249
+ handleContainerClass: 'handle-btn-container',
250
+ tooltipHtml: await Badge.Render(buildBadgeToolTipMenuOption('cyberia-instance-engine')),
251
+ })}
239
252
  </div>
240
253
  `,
241
254
  // htmlMainBody: async () => {
@@ -411,7 +424,7 @@ const MenuCyberiaPortal = {
411
424
  html: async () =>
412
425
  await Account.Render({
413
426
  idModal: 'modal-account',
414
- user: ElementsCyberiaPortal.Data.user.main.model.user,
427
+ user: AppStoreCyberiaPortal.Data.user.main.model.user,
415
428
  disabled: [],
416
429
  }),
417
430
  handleType: 'bar',
@@ -533,7 +546,7 @@ const MenuCyberiaPortal = {
533
546
  text: `<span class='inl cyberia-text-title-modal'>${Translate.Render('recover')}</span>`,
534
547
  }),
535
548
  html: async () =>
536
- await Recover.Render({ idModal: 'modal-recover', user: ElementsCyberiaPortal.Data.user.main.model.user }),
549
+ await Recover.Render({ idModal: 'modal-recover', user: AppStoreCyberiaPortal.Data.user.main.model.user }),
537
550
  handleType: 'bar',
538
551
  maximize: true,
539
552
  mode: 'view',
@@ -555,7 +568,7 @@ const MenuCyberiaPortal = {
555
568
  html: async () =>
556
569
  await ObjectLayerEngineModal.Render({
557
570
  idModal: 'modal-object-layer-engine',
558
- Elements: ElementsCyberiaPortal,
571
+ appStore: AppStoreCyberiaPortal,
559
572
  }),
560
573
  handleType: 'bar',
561
574
  maximize: true,
@@ -577,7 +590,7 @@ const MenuCyberiaPortal = {
577
590
  }),
578
591
  html: async () =>
579
592
  ObjectLayerManagement.RenderTable({
580
- Elements: ElementsCyberiaPortal,
593
+ appStore: AppStoreCyberiaPortal,
581
594
  }),
582
595
  handleType: 'bar',
583
596
  maximize: true,
@@ -600,7 +613,7 @@ const MenuCyberiaPortal = {
600
613
  }),
601
614
  html: async () =>
602
615
  ObjectLayerEngineViewer.Render({
603
- Elements: ElementsCyberiaPortal,
616
+ appStore: AppStoreCyberiaPortal,
604
617
  }),
605
618
  handleType: 'bar',
606
619
  maximize: true,
@@ -621,7 +634,27 @@ const MenuCyberiaPortal = {
621
634
  icon: html`<img class="inl cyberia-menu-icon-modal" src="${getProxyPath()}assets/ui-icons/engine.png" />`,
622
635
  text: `<span class='inl cyberia-text-title-modal'>${Translate.Render('cyberia-map-engine')}</span>`,
623
636
  }),
624
- html: async () => await MapEngineCyberia.render(),
637
+ html: async () => await MapEngineCyberia.render({ appStore: AppStoreCyberiaPortal }),
638
+ handleType: 'bar',
639
+ maximize: true,
640
+ mode: 'view',
641
+ slideMenu: 'modal-menu',
642
+ RouterInstance,
643
+ observer: true,
644
+ });
645
+ });
646
+
647
+ EventsUI.onClick(`.main-btn-cyberia-instance-engine`, async () => {
648
+ const { barConfig } = await Themes[Css.currentTheme]();
649
+ await Modal.Render({
650
+ id: 'modal-cyberia-instance-engine',
651
+ route: 'cyberia-instance-engine',
652
+ barConfig,
653
+ title: renderViewTitle({
654
+ icon: html`<img class="inl cyberia-menu-icon-modal" src="${getProxyPath()}assets/ui-icons/engine.png" />`,
655
+ text: `<span class='inl cyberia-text-title-modal'>${Translate.Render('cyberia-instance-engine')}</span>`,
656
+ }),
657
+ html: async () => await InstanceEngineCyberia.render({ appStore: AppStoreCyberiaPortal }),
625
658
  handleType: 'bar',
626
659
  maximize: true,
627
660
  mode: 'view',
@@ -45,6 +45,10 @@ const RoutesCyberiaPortal = () => {
45
45
  title: 'cyberia-map-engine',
46
46
  render: () => s(`.main-btn-cyberia-map-engine`).click(),
47
47
  },
48
+ '/cyberia-instance-engine': {
49
+ title: 'cyberia-instance-engine',
50
+ render: () => s(`.main-btn-cyberia-instance-engine`).click(),
51
+ },
48
52
  '/docs': { title: 'docs', render: () => s(`.main-btn-docs`).click() },
49
53
  };
50
54
  };
@@ -1,52 +1,6 @@
1
- import { Account } from '../core/Account.js';
2
- import { Chat } from '../core/Chat.js';
3
- import { s4 } from '../core/CommonJs.js';
4
- import { loggerFactory } from '../core/Logger.js';
5
- import { SocketIo } from '../core/SocketIo.js';
6
- import { s } from '../core/VanillaJs.js';
7
- import { ElementsCyberiaPortal } from './ElementsCyberiaPortal.js';
1
+ import { SocketIoHandlerProvider } from '../core/SocketIoHandler.js';
2
+ import { AppStoreCyberiaPortal } from './AppStoreCyberiaPortal.js';
8
3
 
9
- const logger = loggerFactory(import.meta);
10
-
11
- const SocketIoCyberiaPortal = {
12
- Init: function () {
13
- return new Promise((resolve) => {
14
- for (const type of Object.keys(ElementsCyberiaPortal.Data)) {
15
- SocketIo.Event[type][s4()] = async (args) => {
16
- args = JSON.parse(args[0]);
17
- switch (type) {
18
- case 'chat':
19
- {
20
- const idModal = 'modal-chat';
21
- if (s(`.${idModal}-chat-box`)) Chat.appendChatBox({ idModal, ...args });
22
- }
23
- break;
24
-
25
- default:
26
- break;
27
- }
28
- // logger.info('ws on event', args);
29
- const { id, element, status } = args;
30
- switch (status) {
31
- case 'email-confirmed':
32
- const newUser = { ...ElementsCyberiaPortal.Data.user.main.model.user, emailConfirmed: true };
33
- Account.renderVerifyEmailStatus(newUser);
34
- Account.triggerUpdateEvent({ user: newUser });
35
- break;
36
- default:
37
- break;
38
- }
39
- };
40
- }
41
- SocketIo.Event.connect[s4()] = async (reason) => {
42
- // ElementsCyberiaPortal.Init({ type, id, element });
43
- };
44
- SocketIo.Event.disconnect[s4()] = async (reason) => {
45
- // ElementsCyberiaPortal.removeAll();
46
- };
47
- return resolve();
48
- });
49
- },
50
- };
4
+ const SocketIoCyberiaPortal = SocketIoHandlerProvider.create(AppStoreCyberiaPortal);
51
5
 
52
6
  export { SocketIoCyberiaPortal };
@@ -18,6 +18,10 @@ const TranslateCyberiaPortal = {
18
18
  en: 'Cyberia Map Engine',
19
19
  es: 'Cyberia Map Engine',
20
20
  };
21
+ Translate.Data['cyberia-instance-engine'] = {
22
+ en: 'Cyberia Instance Engine',
23
+ es: 'Cyberia Instance Engine',
24
+ };
21
25
  },
22
26
  };
23
27
 
@@ -0,0 +1,5 @@
1
+ import { AppStore } from '../core/AppStore.js';
2
+
3
+ const AppStoreDefault = AppStore.create();
4
+
5
+ export { AppStoreDefault };
@@ -1,14 +1,14 @@
1
1
  import { Auth } from '../core/Auth.js';
2
2
  import { LogIn } from '../core/LogIn.js';
3
- import { ElementsDefault } from './ElementsDefault.js';
3
+ import { AppStoreDefault } from './AppStoreDefault.js';
4
4
 
5
5
  const LogInDefault = async function () {
6
6
  LogIn.Event['LogInDefault'] = async (options) => {
7
7
  const { token, user } = options;
8
- ElementsDefault.Data.user.main.model.user = user;
8
+ AppStoreDefault.Data.user.main.model.user = user;
9
9
  };
10
10
  const { user } = await Auth.sessionIn();
11
- ElementsDefault.Data.user.main.model.user = user;
11
+ AppStoreDefault.Data.user.main.model.user = user;
12
12
  };
13
13
 
14
14
  export { LogInDefault };
@@ -1,9 +1,9 @@
1
1
  import { LogOut } from '../core/LogOut.js';
2
- import { ElementsDefault } from './ElementsDefault.js';
2
+ import { AppStoreDefault } from './AppStoreDefault.js';
3
3
 
4
4
  const LogOutDefault = async function () {
5
5
  LogOut.Event['LogOutDefault'] = async (result = { user: { _id: '' } }) => {
6
- ElementsDefault.Data.user.main.model.user = result.user;
6
+ AppStoreDefault.Data.user.main.model.user = result.user;
7
7
  };
8
8
  };
9
9
 
@@ -10,7 +10,7 @@ import { SignUp } from '../core/SignUp.js';
10
10
  import { Translate } from '../core/Translate.js';
11
11
  import { htmls, s } from '../core/VanillaJs.js';
12
12
  import { extractUsernameFromPath, getProxyPath, getQueryParams } from '../core/Router.js';
13
- import { ElementsDefault } from './ElementsDefault.js';
13
+ import { AppStoreDefault } from './AppStoreDefault.js';
14
14
  import Sortable from 'sortablejs';
15
15
  import { RouterDefault, BannerAppTemplate } from './RoutesDefault.js';
16
16
  import { SettingsDefault } from './SettingsDefault.js';
@@ -551,7 +551,7 @@ const MenuDefault = {
551
551
  html: async () =>
552
552
  await Account.Render({
553
553
  idModal: 'modal-account',
554
- user: ElementsDefault.Data.user.main.model.user,
554
+ user: AppStoreDefault.Data.user.main.model.user,
555
555
  disabled: [],
556
556
  }),
557
557
  handleType: 'bar',
@@ -565,7 +565,7 @@ const MenuDefault = {
565
565
  EventsUI.onClick(`.main-btn-public-profile`, async () => {
566
566
  const { barConfig } = await Themes[Css.currentTheme]();
567
567
  const idModal = 'modal-public-profile';
568
- const user = ElementsDefault.Data.user.main.model.user;
568
+ const user = AppStoreDefault.Data.user.main.model.user;
569
569
 
570
570
  // Check if modal already exists
571
571
  const existingModal = s(`.${idModal}`);
@@ -635,7 +635,7 @@ const MenuDefault = {
635
635
  text: Translate.Render('recover'),
636
636
  }),
637
637
  html: async () =>
638
- await Recover.Render({ idModal: 'modal-recover', user: ElementsDefault.Data.user.main.model.user }),
638
+ await Recover.Render({ idModal: 'modal-recover', user: AppStoreDefault.Data.user.main.model.user }),
639
639
  handleType: 'bar',
640
640
  maximize: true,
641
641
  mode: 'view',
@@ -723,7 +723,7 @@ const MenuDefault = {
723
723
  await PanelForm.instance({
724
724
  idPanel: 'default-blog',
725
725
  defaultUrlImage: `${getProxyPath()}android-chrome-96x96.png`,
726
- Elements: ElementsDefault,
726
+ appStore: AppStoreDefault,
727
727
  parentIdModal: idModal,
728
728
  scrollClassContainer: `html-${idModal}`,
729
729
  route: routeModal,
@@ -1,54 +1,6 @@
1
- import { Account } from '../core/Account.js';
2
- import { Chat } from '../core/Chat.js';
3
- import { s4 } from '../core/CommonJs.js';
4
- import { loggerFactory } from '../core/Logger.js';
5
- import { SocketIo } from '../core/SocketIo.js';
6
- import { s } from '../core/VanillaJs.js';
7
- import { ElementsDefault } from './ElementsDefault.js';
1
+ import { SocketIoHandlerProvider } from '../core/SocketIoHandler.js';
2
+ import { AppStoreDefault } from './AppStoreDefault.js';
8
3
 
9
- const logger = loggerFactory(import.meta);
10
-
11
- const SocketIoDefault = {
12
- Init: function () {
13
- return new Promise((resolve) => {
14
- for (const type of Object.keys(ElementsDefault.Data)) {
15
- SocketIo.Event[type][s4()] = async (args) => {
16
- args = JSON.parse(args[0]);
17
- switch (type) {
18
- case 'chat':
19
- {
20
- const idModal = 'modal-chat';
21
- if (s(`.${idModal}-chat-box`)) Chat.appendChatBox({ idModal, ...args });
22
- }
23
- break;
24
-
25
- default:
26
- break;
27
- }
28
- const { status } = args;
29
-
30
- switch (status) {
31
- case 'email-confirmed': {
32
- const newUser = { ...ElementsDefault.Data.user.main.model.user, emailConfirmed: true };
33
- Account.renderVerifyEmailStatus(newUser);
34
- Account.triggerUpdateEvent({ user: newUser });
35
- break;
36
- }
37
-
38
- default:
39
- break;
40
- }
41
- };
42
- }
43
- SocketIo.Event.connect[s4()] = async (reason) => {
44
- // ElementsDefault.Init({ type, id, element });
45
- };
46
- SocketIo.Event.disconnect[s4()] = async (reason) => {
47
- // ElementsDefault.removeAll();
48
- };
49
- return resolve();
50
- });
51
- },
52
- };
4
+ const SocketIoDefault = SocketIoHandlerProvider.create(AppStoreDefault);
53
5
 
54
6
  export { SocketIoDefault };
@@ -0,0 +1,5 @@
1
+ import { AppStore } from '../core/AppStore.js';
2
+
3
+ const AppStoreItemledger = AppStore.create();
4
+
5
+ export { AppStoreItemledger };
@@ -1,15 +1,15 @@
1
1
  import { Auth } from '../core/Auth.js';
2
2
  import { LogIn } from '../core/LogIn.js';
3
- import { ElementsItemledger } from './ElementsItemledger.js';
3
+ import { AppStoreItemledger } from './AppStoreItemledger.js';
4
4
 
5
5
  const LogInItemledger = async function () {
6
6
  LogIn.Event['LogInItemledger'] = async (options) => {
7
7
  const { token, user } = options;
8
8
 
9
- ElementsItemledger.Data.user.main.model.user = user;
9
+ AppStoreItemledger.Data.user.main.model.user = user;
10
10
  };
11
11
  const { user } = await Auth.sessionIn();
12
- ElementsItemledger.Data.user.main.model.user = user;
12
+ AppStoreItemledger.Data.user.main.model.user = user;
13
13
  };
14
14
 
15
15
  export { LogInItemledger };
@@ -1,9 +1,9 @@
1
1
  import { LogOut } from '../core/LogOut.js';
2
- import { ElementsItemledger } from './ElementsItemledger.js';
2
+ import { AppStoreItemledger } from './AppStoreItemledger.js';
3
3
 
4
4
  const LogOutItemledger = async function () {
5
5
  LogOut.Event['LogOutItemledger'] = async (result = { user: { _id: '' } }) => {
6
- ElementsItemledger.Data.user.main.model.user = result.user;
6
+ AppStoreItemledger.Data.user.main.model.user = result.user;
7
7
  };
8
8
  };
9
9
 
@@ -10,7 +10,7 @@ import { SignUp } from '../core/SignUp.js';
10
10
  import { Translate } from '../core/Translate.js';
11
11
  import { htmls, s } from '../core/VanillaJs.js';
12
12
  import { getProxyPath } from '../core/Router.js';
13
- import { ElementsItemledger } from './ElementsItemledger.js';
13
+ import { AppStoreItemledger } from './AppStoreItemledger.js';
14
14
  import Sortable from 'sortablejs';
15
15
  import { RouterItemledger, BannerAppTemplate } from './RoutesItemledger.js';
16
16
  import { SettingsItemledger } from './SettingsItemledger.js';
@@ -271,7 +271,7 @@ const MenuItemledger = {
271
271
  html: async () =>
272
272
  await Account.Render({
273
273
  idModal: 'modal-account',
274
- user: ElementsItemledger.Data.user.main.model.user,
274
+ user: AppStoreItemledger.Data.user.main.model.user,
275
275
  disabled: [],
276
276
  }),
277
277
  handleType: 'bar',
@@ -339,7 +339,7 @@ const MenuItemledger = {
339
339
  text: Translate.Render('recover'),
340
340
  }),
341
341
  html: async () =>
342
- await Recover.Render({ idModal: 'modal-recover', user: ElementsItemledger.Data.user.main.model.user }),
342
+ await Recover.Render({ idModal: 'modal-recover', user: AppStoreItemledger.Data.user.main.model.user }),
343
343
  handleType: 'bar',
344
344
  maximize: true,
345
345
  mode: 'view',
@@ -1,54 +1,6 @@
1
- import { Account } from '../core/Account.js';
2
- import { Chat } from '../core/Chat.js';
3
- import { s4 } from '../core/CommonJs.js';
4
- import { loggerFactory } from '../core/Logger.js';
5
- import { SocketIo } from '../core/SocketIo.js';
6
- import { s } from '../core/VanillaJs.js';
7
- import { ElementsItemledger } from './ElementsItemledger.js';
1
+ import { SocketIoHandlerProvider } from '../core/SocketIoHandler.js';
2
+ import { AppStoreItemledger } from './AppStoreItemledger.js';
8
3
 
9
- const logger = loggerFactory(import.meta);
10
-
11
- const SocketIoItemledger = {
12
- Init: function () {
13
- return new Promise((resolve) => {
14
- for (const type of Object.keys(ElementsItemledger.Data)) {
15
- SocketIo.Event[type][s4()] = async (args) => {
16
- args = JSON.parse(args[0]);
17
- switch (type) {
18
- case 'chat':
19
- {
20
- const idModal = 'modal-chat';
21
- if (s(`.${idModal}-chat-box`)) Chat.appendChatBox({ idModal, ...args });
22
- }
23
- break;
24
-
25
- itemledger:
26
- break;
27
- }
28
- const { status } = args;
29
-
30
- switch (status) {
31
- case 'email-confirmed': {
32
- const newUser = { ...ElementsItemledger.Data.user.main.model.user, emailConfirmed: true };
33
- Account.renderVerifyEmailStatus(newUser);
34
- Account.triggerUpdateEvent({ user: newUser });
35
- break;
36
- }
37
-
38
- itemledger:
39
- break;
40
- }
41
- };
42
- }
43
- SocketIo.Event.connect[s4()] = async (reason) => {
44
- // ElementsItemledger.Init({ type, id, element });
45
- };
46
- SocketIo.Event.disconnect[s4()] = async (reason) => {
47
- // ElementsItemledger.removeAll();
48
- };
49
- return resolve();
50
- });
51
- },
52
- };
4
+ const SocketIoItemledger = SocketIoHandlerProvider.create(AppStoreItemledger);
53
5
 
54
6
  export { SocketIoItemledger };
@@ -0,0 +1,5 @@
1
+ import { AppStore } from '../core/AppStore.js';
2
+
3
+ const AppStoreUnderpost = AppStore.create();
4
+
5
+ export { AppStoreUnderpost };
@@ -1,6 +1,6 @@
1
1
  import { Auth } from '../core/Auth.js';
2
2
  import { LogIn } from '../core/LogIn.js';
3
- import { ElementsUnderpost } from './ElementsUnderpost.js';
3
+ import { AppStoreUnderpost } from './AppStoreUnderpost.js';
4
4
  import { PanelForm } from '../core/PanelForm.js';
5
5
  import { RouterReady } from '../core/Router.js';
6
6
  import { s } from '../core/VanillaJs.js';
@@ -10,14 +10,14 @@ const LogInUnderpost = async function () {
10
10
  LogIn.Event['LogInUnderpost'] = async (options) => {
11
11
  const { token, user } = options;
12
12
 
13
- ElementsUnderpost.Data.user.main.model.user = user;
13
+ AppStoreUnderpost.Data.user.main.model.user = user;
14
14
 
15
15
  await RouterReady;
16
16
  await PanelForm.Data['underpost-panel'].updatePanel();
17
17
  if (s(`.main-btn-cloud`) && commonUserGuard(user.role)) s(`.main-btn-cloud`).classList.remove('hide');
18
18
  };
19
19
  const { user } = await Auth.sessionIn();
20
- ElementsUnderpost.Data.user.main.model.user = user;
20
+ AppStoreUnderpost.Data.user.main.model.user = user;
21
21
  };
22
22
 
23
23
  export { LogInUnderpost };
@@ -1,11 +1,11 @@
1
1
  import { LogOut } from '../core/LogOut.js';
2
- import { ElementsUnderpost } from './ElementsUnderpost.js';
2
+ import { AppStoreUnderpost } from './AppStoreUnderpost.js';
3
3
  import { PanelForm } from '../core/PanelForm.js';
4
4
  import { s } from '../core/VanillaJs.js';
5
5
 
6
6
  const LogOutUnderpost = async function () {
7
7
  LogOut.Event['LogOutUnderpost'] = async (result = { user: { _id: '' } }) => {
8
- ElementsUnderpost.Data.user.main.model.user = result.user;
8
+ AppStoreUnderpost.Data.user.main.model.user = result.user;
9
9
 
10
10
  PanelForm.Data['underpost-panel'].updatePanel();
11
11
  if (s(`.main-btn-cloud`)) s(`.main-btn-cloud`).classList.add('hide');
@@ -10,7 +10,7 @@ import { SignUp } from '../core/SignUp.js';
10
10
  import { Translate } from '../core/Translate.js';
11
11
  import { htmls, s } from '../core/VanillaJs.js';
12
12
  import { extractUsernameFromPath, getProxyPath, getQueryParams } from '../core/Router.js';
13
- import { ElementsUnderpost } from './ElementsUnderpost.js';
13
+ import { AppStoreUnderpost } from './AppStoreUnderpost.js';
14
14
  import Sortable from 'sortablejs';
15
15
  import { RouterUnderpost, BannerAppTemplate } from './RoutesUnderpost.js';
16
16
  import { LabGalleryUnderpost } from './LabGalleryUnderpost.js';
@@ -234,7 +234,7 @@ const MenuUnderpost = {
234
234
  const panelFormInstance = await PanelForm.instance({
235
235
  idPanel: 'underpost-panel',
236
236
  defaultUrlImage: `${getProxyPath()}assets/splash/apple-touch-icon-precomposed.png`,
237
- Elements: ElementsUnderpost,
237
+ appStore: AppStoreUnderpost,
238
238
  route: 'home',
239
239
  share: {
240
240
  copyLink: true,
@@ -494,7 +494,7 @@ const MenuUnderpost = {
494
494
  html: async () =>
495
495
  await Account.Render({
496
496
  idModal: 'modal-account',
497
- user: ElementsUnderpost.Data.user.main.model.user,
497
+ user: AppStoreUnderpost.Data.user.main.model.user,
498
498
  disabled: [],
499
499
  }),
500
500
  handleType: 'bar',
@@ -510,7 +510,7 @@ const MenuUnderpost = {
510
510
  EventsUI.onClick(`.main-btn-public-profile`, async () => {
511
511
  const { barConfig } = await Themes[Css.currentTheme]();
512
512
  const idModal = 'modal-public-profile';
513
- const loggedInUser = ElementsUnderpost.Data.user.main.model.user;
513
+ const loggedInUser = AppStoreUnderpost.Data.user.main.model.user;
514
514
 
515
515
  // Determine the target username: prefer URL path/query over logged-in user
516
516
  const usernameFromPath = extractUsernameFromPath();
@@ -640,7 +640,7 @@ const MenuUnderpost = {
640
640
  text: `<span class='inl underpost-text-title-modal'>${Translate.Render('recover')}</span>`,
641
641
  }),
642
642
  html: async () =>
643
- await Recover.Render({ idModal: 'modal-recover', user: ElementsUnderpost.Data.user.main.model.user }),
643
+ await Recover.Render({ idModal: 'modal-recover', user: AppStoreUnderpost.Data.user.main.model.user }),
644
644
  handleType: 'bar',
645
645
  maximize: true,
646
646
  mode: 'view',
@@ -1,54 +1,6 @@
1
- import { Account } from '../core/Account.js';
2
- import { Chat } from '../core/Chat.js';
3
- import { s4 } from '../core/CommonJs.js';
4
- import { loggerFactory } from '../core/Logger.js';
5
- import { SocketIo } from '../core/SocketIo.js';
6
- import { s } from '../core/VanillaJs.js';
7
- import { ElementsUnderpost } from './ElementsUnderpost.js';
1
+ import { SocketIoHandlerProvider } from '../core/SocketIoHandler.js';
2
+ import { AppStoreUnderpost } from './AppStoreUnderpost.js';
8
3
 
9
- const logger = loggerFactory(import.meta);
10
-
11
- const SocketIoUnderpost = {
12
- Init: function () {
13
- return new Promise((resolve) => {
14
- for (const type of Object.keys(ElementsUnderpost.Data)) {
15
- SocketIo.Event[type][s4()] = async (args) => {
16
- args = JSON.parse(args[0]);
17
- switch (type) {
18
- case 'chat':
19
- {
20
- const idModal = 'modal-chat';
21
- if (s(`.${idModal}-chat-box`)) Chat.appendChatBox({ idModal, ...args });
22
- }
23
- break;
24
-
25
- default:
26
- break;
27
- }
28
- const { status } = args;
29
-
30
- switch (status) {
31
- case 'email-confirmed': {
32
- const newUser = { ...ElementsUnderpost.Data.user.main.model.user, emailConfirmed: true };
33
- Account.renderVerifyEmailStatus(newUser);
34
- Account.triggerUpdateEvent({ user: newUser });
35
- break;
36
- }
37
-
38
- default:
39
- break;
40
- }
41
- };
42
- }
43
- SocketIo.Event.connect[s4()] = async (reason) => {
44
- // ElementsUnderpost.Init({ type, id, element });
45
- };
46
- SocketIo.Event.disconnect[s4()] = async (reason) => {
47
- // ElementsUnderpost.removeAll();
48
- };
49
- return resolve();
50
- });
51
- },
52
- };
4
+ const SocketIoUnderpost = SocketIoHandlerProvider.create(AppStoreUnderpost);
53
5
 
54
6
  export { SocketIoUnderpost };