@underpostnet/cyberia 3.2.80

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 (821) hide show
  1. package/.dockerignore +14 -0
  2. package/.env.example +144 -0
  3. package/.github/workflows/cyberia-client.cd.yml +40 -0
  4. package/.github/workflows/cyberia-server.cd.yml +40 -0
  5. package/.github/workflows/docker-image.cyberia-client.ci.yml +71 -0
  6. package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +70 -0
  7. package/.github/workflows/docker-image.cyberia-server.ci.yml +71 -0
  8. package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +71 -0
  9. package/.github/workflows/docker-image.engine-cyberia.ci.yml +53 -0
  10. package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +53 -0
  11. package/.github/workflows/engine-cyberia.cd.yml +157 -0
  12. package/.github/workflows/engine-cyberia.ci.yml +125 -0
  13. package/.github/workflows/ghpkg.ci.yml +160 -0
  14. package/.github/workflows/gitlab.ci.yml +20 -0
  15. package/.github/workflows/hardhat.ci.yml +82 -0
  16. package/.github/workflows/npmpkg.ci.yml +126 -0
  17. package/.github/workflows/publish.ci.yml +87 -0
  18. package/.github/workflows/publish.cyberia.ci.yml +79 -0
  19. package/.github/workflows/pwa-microservices-template-page.cd.yml +65 -0
  20. package/.github/workflows/pwa-microservices-template-test.ci.yml +33 -0
  21. package/.github/workflows/release.cd.yml +46 -0
  22. package/.nycrc +9 -0
  23. package/.prettierignore +12 -0
  24. package/.prettierrc +9 -0
  25. package/.vscode/extensions.json +10 -0
  26. package/.vscode/settings.json +26 -0
  27. package/CHANGELOG.md +2516 -0
  28. package/CLI-HELP.md +1099 -0
  29. package/Dockerfile +161 -0
  30. package/Dockerfile.dev +161 -0
  31. package/Dockerfile.test +165 -0
  32. package/LICENSE +21 -0
  33. package/README.md +259 -0
  34. package/baremetal/commission-workflows.json +211 -0
  35. package/baremetal/packer-workflows.json +24 -0
  36. package/bin/build.js +261 -0
  37. package/bin/build.template.js +33 -0
  38. package/bin/cyberia.js +5627 -0
  39. package/bin/deploy.js +1547 -0
  40. package/bin/index.js +5627 -0
  41. package/bump.config.js +27 -0
  42. package/compose.env +144 -0
  43. package/conf.js +952 -0
  44. package/deployment.yaml +418 -0
  45. package/docker-compose.yml +434 -0
  46. package/examples/static-page/README.md +150 -0
  47. package/examples/static-page/ssr-components/CustomPage.js +554 -0
  48. package/examples/static-page/static-config-example.json +57 -0
  49. package/hardhat/.env.example +31 -0
  50. package/hardhat/contracts/ObjectLayerToken.sol +391 -0
  51. package/hardhat/deployments/.gitkeep +0 -0
  52. package/hardhat/deployments/hardhat-ObjectLayerToken.json +11 -0
  53. package/hardhat/hardhat.config.js +136 -0
  54. package/hardhat/ignition/modules/.gitkeep +0 -0
  55. package/hardhat/ignition/modules/ObjectLayerToken.js +21 -0
  56. package/hardhat/networks/besu-object-layer.network.json +138 -0
  57. package/hardhat/package-lock.json +2871 -0
  58. package/hardhat/package.json +43 -0
  59. package/hardhat/scripts/deployObjectLayerToken.js +98 -0
  60. package/hardhat/test/ObjectLayerToken.js +696 -0
  61. package/hardhat/types/ethers-contracts/ObjectLayerToken.ts +690 -0
  62. package/hardhat/types/ethers-contracts/common.ts +92 -0
  63. package/hardhat/types/ethers-contracts/factories/ObjectLayerToken__factory.ts +1055 -0
  64. package/hardhat/types/ethers-contracts/factories/index.ts +4 -0
  65. package/hardhat/types/ethers-contracts/hardhat.d.ts +47 -0
  66. package/hardhat/types/ethers-contracts/index.ts +6 -0
  67. package/ipfs/configure-ipfs.sh +13 -0
  68. package/jsconfig.json +9 -0
  69. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +48 -0
  70. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +48 -0
  71. package/manifests/deployment/adminer/deployment.yaml +32 -0
  72. package/manifests/deployment/adminer/kustomization.yaml +7 -0
  73. package/manifests/deployment/adminer/service.yaml +13 -0
  74. package/manifests/deployment/dd-cyberia-development/deployment.yaml +418 -0
  75. package/manifests/deployment/dd-cyberia-development/grpc-service.yaml +17 -0
  76. package/manifests/deployment/dd-cyberia-development/proxy.yaml +189 -0
  77. package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +164 -0
  78. package/manifests/deployment/dd-default-development/deployment.yaml +163 -0
  79. package/manifests/deployment/dd-default-development/proxy.yaml +46 -0
  80. package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
  81. package/manifests/deployment/fastapi/backend-service.yml +19 -0
  82. package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
  83. package/manifests/deployment/fastapi/frontend-service.yml +15 -0
  84. package/manifests/deployment/fastapi/initial_data.sh +8 -0
  85. package/manifests/deployment/kafka/deployment.yaml +67 -0
  86. package/manifests/deployment/mongo-express/deployment.yaml +62 -0
  87. package/manifests/deployment/phpmyadmin/deployment.yaml +54 -0
  88. package/manifests/deployment/playwright/deployment.yaml +52 -0
  89. package/manifests/deployment/spark/spark-pi-py.yaml +20 -0
  90. package/manifests/deployment/tensorflow/tf-gpu-test.yaml +63 -0
  91. package/manifests/envoy-service-nodeport.yaml +22 -0
  92. package/manifests/grafana/deployment.yaml +64 -0
  93. package/manifests/grafana/kustomization.yaml +7 -0
  94. package/manifests/grafana/pvc.yaml +12 -0
  95. package/manifests/grafana/service.yaml +14 -0
  96. package/manifests/grafana/storage-class.yaml +9 -0
  97. package/manifests/ipfs/configmap.yaml +64 -0
  98. package/manifests/ipfs/headless-service.yaml +35 -0
  99. package/manifests/ipfs/kustomization.yaml +8 -0
  100. package/manifests/ipfs/statefulset.yaml +149 -0
  101. package/manifests/ipfs/storage-class.yaml +9 -0
  102. package/manifests/kind-config-dev.yaml +20 -0
  103. package/manifests/kind-config.yaml +12 -0
  104. package/manifests/kubeadm-calico-config.yaml +14 -0
  105. package/manifests/letsencrypt-prod.yaml +14 -0
  106. package/manifests/lxd/lxd-admin-profile.yaml +26 -0
  107. package/manifests/lxd/lxd-preseed.yaml +30 -0
  108. package/manifests/mariadb/kustomization.yaml +9 -0
  109. package/manifests/mariadb/pv.yaml +12 -0
  110. package/manifests/mariadb/pvc.yaml +10 -0
  111. package/manifests/mariadb/service.yaml +10 -0
  112. package/manifests/mariadb/statefulset.yaml +56 -0
  113. package/manifests/mariadb/storage-class.yaml +10 -0
  114. package/manifests/mongodb/headless-service.yaml +10 -0
  115. package/manifests/mongodb/kustomization.yaml +11 -0
  116. package/manifests/mongodb/pv-pvc.yaml +59 -0
  117. package/manifests/mongodb/statefulset.yaml +113 -0
  118. package/manifests/mongodb/storage-class.yaml +9 -0
  119. package/manifests/mongodb-4.4/headless-service.yaml +10 -0
  120. package/manifests/mongodb-4.4/kustomization.yaml +9 -0
  121. package/manifests/mongodb-4.4/mongodb-nodeport.yaml +17 -0
  122. package/manifests/mongodb-4.4/pv-pvc.yaml +19 -0
  123. package/manifests/mongodb-4.4/service-deployment.yaml +61 -0
  124. package/manifests/mongodb-4.4/statefulset.yaml +79 -0
  125. package/manifests/mongodb-4.4/storage-class.yaml +9 -0
  126. package/manifests/mysql/kustomization.yaml +7 -0
  127. package/manifests/mysql/pv-pvc.yaml +27 -0
  128. package/manifests/mysql/statefulset.yaml +55 -0
  129. package/manifests/postgresql/configmap.yaml +9 -0
  130. package/manifests/postgresql/kustomization.yaml +10 -0
  131. package/manifests/postgresql/pv.yaml +15 -0
  132. package/manifests/postgresql/pvc.yaml +13 -0
  133. package/manifests/postgresql/service.yaml +10 -0
  134. package/manifests/postgresql/statefulset.yaml +37 -0
  135. package/manifests/prometheus/deployment.yaml +82 -0
  136. package/manifests/pv-pvc-dd.yaml +34 -0
  137. package/manifests/valkey/kustomization.yaml +7 -0
  138. package/manifests/valkey/service.yaml +10 -0
  139. package/manifests/valkey/statefulset.yaml +37 -0
  140. package/manifests/valkey/valkey-nodeport.yaml +17 -0
  141. package/mongodb/entrypoint.sh +76 -0
  142. package/nginx.conf +128 -0
  143. package/nodemon.json +6 -0
  144. package/package.json +101 -0
  145. package/packer/images/Rocky9Amd64/Makefile +62 -0
  146. package/packer/images/Rocky9Amd64/QUICKSTART.md +113 -0
  147. package/packer/images/Rocky9Amd64/README.md +122 -0
  148. package/packer/images/Rocky9Amd64/http/rocky9.ks.pkrtpl.hcl +114 -0
  149. package/packer/images/Rocky9Amd64/rocky9.pkr.hcl +164 -0
  150. package/packer/images/Rocky9Arm64/Makefile +69 -0
  151. package/packer/images/Rocky9Arm64/README.md +122 -0
  152. package/packer/images/Rocky9Arm64/http/rocky9.ks.pkrtpl.hcl +114 -0
  153. package/packer/images/Rocky9Arm64/rocky9.pkr.hcl +171 -0
  154. package/packer/scripts/fuse-nbd +64 -0
  155. package/packer/scripts/fuse-tar-root +63 -0
  156. package/proxy.yaml +189 -0
  157. package/pv-pvc.yaml +164 -0
  158. package/scripts/device-scan.sh +65 -0
  159. package/scripts/disk-clean.sh +182 -0
  160. package/scripts/disk-devices.sh +13 -0
  161. package/scripts/gen-fqdns.sh +14 -0
  162. package/scripts/gpu-diag.sh +19 -0
  163. package/scripts/ip-info.sh +118 -0
  164. package/scripts/ipxe-setup.sh +200 -0
  165. package/scripts/k3s-node-setup.sh +124 -0
  166. package/scripts/kubeadm-node-setup.sh +317 -0
  167. package/scripts/link-local-underpost-cli.sh +6 -0
  168. package/scripts/lxd-vm-setup.sh +208 -0
  169. package/scripts/maas-nat-firewalld.sh +145 -0
  170. package/scripts/maas-setup.sh +135 -0
  171. package/scripts/maas-upload-boot-resource.sh +183 -0
  172. package/scripts/nat-iptables.sh +111 -0
  173. package/scripts/nvim.sh +91 -0
  174. package/scripts/packer-init-vars-file.sh +40 -0
  175. package/scripts/packer-setup.sh +289 -0
  176. package/scripts/ports-ls.sh +33 -0
  177. package/scripts/quick-tftp.sh +19 -0
  178. package/scripts/rhel-grpc-setup.sh +56 -0
  179. package/scripts/rocky-kickstart.sh +986 -0
  180. package/scripts/rocky-pwa.sh +200 -0
  181. package/scripts/rocky-setup.sh +106 -0
  182. package/scripts/rpmfusion-ffmpeg-setup.sh +32 -0
  183. package/scripts/ssl.sh +170 -0
  184. package/scripts/test-monitor.sh +248 -0
  185. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +30 -0
  186. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +155 -0
  187. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.router.js +39 -0
  188. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +382 -0
  189. package/src/api/core/core.controller.js +8 -0
  190. package/src/api/core/core.model.js +11 -0
  191. package/src/api/core/core.router.js +23 -0
  192. package/src/api/core/core.service.js +30 -0
  193. package/src/api/crypto/crypto.controller.js +10 -0
  194. package/src/api/crypto/crypto.model.js +23 -0
  195. package/src/api/crypto/crypto.router.js +23 -0
  196. package/src/api/crypto/crypto.service.js +64 -0
  197. package/src/api/cyberia-action/cyberia-action.controller.js +8 -0
  198. package/src/api/cyberia-action/cyberia-action.model.js +79 -0
  199. package/src/api/cyberia-action/cyberia-action.router.js +21 -0
  200. package/src/api/cyberia-action/cyberia-action.service.js +58 -0
  201. package/src/api/cyberia-client-hints/cyberia-client-hints.controller.js +27 -0
  202. package/src/api/cyberia-client-hints/cyberia-client-hints.model.js +100 -0
  203. package/src/api/cyberia-client-hints/cyberia-client-hints.router.js +70 -0
  204. package/src/api/cyberia-client-hints/cyberia-client-hints.service.js +152 -0
  205. package/src/api/cyberia-dialogue/cyberia-dialogue.controller.js +8 -0
  206. package/src/api/cyberia-dialogue/cyberia-dialogue.model.js +36 -0
  207. package/src/api/cyberia-dialogue/cyberia-dialogue.router.js +20 -0
  208. package/src/api/cyberia-dialogue/cyberia-dialogue.service.js +57 -0
  209. package/src/api/cyberia-entity/cyberia-entity.controller.js +6 -0
  210. package/src/api/cyberia-entity/cyberia-entity.model.js +25 -0
  211. package/src/api/cyberia-entity/cyberia-entity.router.js +17 -0
  212. package/src/api/cyberia-entity/cyberia-entity.service.js +42 -0
  213. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.controller.js +6 -0
  214. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.model.js +67 -0
  215. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.router.js +17 -0
  216. package/src/api/cyberia-entity-type-default/cyberia-entity-type-default.service.js +46 -0
  217. package/src/api/cyberia-instance/cyberia-fallback-world.js +337 -0
  218. package/src/api/cyberia-instance/cyberia-instance-boot.service.js +57 -0
  219. package/src/api/cyberia-instance/cyberia-instance-map.service.js +583 -0
  220. package/src/api/cyberia-instance/cyberia-instance.controller.js +42 -0
  221. package/src/api/cyberia-instance/cyberia-instance.model.js +117 -0
  222. package/src/api/cyberia-instance/cyberia-instance.router.js +75 -0
  223. package/src/api/cyberia-instance/cyberia-instance.service.js +190 -0
  224. package/src/api/cyberia-instance/cyberia-portal-connector.js +260 -0
  225. package/src/api/cyberia-instance/cyberia-world-generator.js +618 -0
  226. package/src/api/cyberia-instance-conf/cyberia-instance-conf.controller.js +6 -0
  227. package/src/api/cyberia-instance-conf/cyberia-instance-conf.model.js +200 -0
  228. package/src/api/cyberia-instance-conf/cyberia-instance-conf.router.js +17 -0
  229. package/src/api/cyberia-instance-conf/cyberia-instance-conf.service.js +46 -0
  230. package/src/api/cyberia-map/cyberia-map.controller.js +6 -0
  231. package/src/api/cyberia-map/cyberia-map.model.js +33 -0
  232. package/src/api/cyberia-map/cyberia-map.router.js +19 -0
  233. package/src/api/cyberia-map/cyberia-map.service.js +76 -0
  234. package/src/api/cyberia-quest/cyberia-quest.controller.js +9 -0
  235. package/src/api/cyberia-quest/cyberia-quest.model.js +67 -0
  236. package/src/api/cyberia-quest/cyberia-quest.router.js +26 -0
  237. package/src/api/cyberia-quest/cyberia-quest.service.js +97 -0
  238. package/src/api/cyberia-quest-progress/cyberia-quest-progress.controller.js +6 -0
  239. package/src/api/cyberia-quest-progress/cyberia-quest-progress.model.js +49 -0
  240. package/src/api/cyberia-quest-progress/cyberia-quest-progress.router.js +21 -0
  241. package/src/api/cyberia-quest-progress/cyberia-quest-progress.service.js +42 -0
  242. package/src/api/cyberia-saga/cyberia-saga.controller.js +6 -0
  243. package/src/api/cyberia-saga/cyberia-saga.model.js +59 -0
  244. package/src/api/cyberia-saga/cyberia-saga.router.js +17 -0
  245. package/src/api/cyberia-saga/cyberia-saga.service.js +42 -0
  246. package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +1076 -0
  247. package/src/api/cyberia-skill/cyberia-skill.controller.js +6 -0
  248. package/src/api/cyberia-skill/cyberia-skill.model.js +50 -0
  249. package/src/api/cyberia-skill/cyberia-skill.router.js +17 -0
  250. package/src/api/cyberia-skill/cyberia-skill.service.js +42 -0
  251. package/src/api/default/default.controller.js +6 -0
  252. package/src/api/default/default.model.js +20 -0
  253. package/src/api/default/default.router.js +21 -0
  254. package/src/api/default/default.service.js +42 -0
  255. package/src/api/document/document.controller.js +9 -0
  256. package/src/api/document/document.model.js +95 -0
  257. package/src/api/document/document.router.js +32 -0
  258. package/src/api/document/document.service.js +633 -0
  259. package/src/api/file/file.controller.js +15 -0
  260. package/src/api/file/file.model.js +127 -0
  261. package/src/api/file/file.ref.json +39 -0
  262. package/src/api/file/file.router.js +36 -0
  263. package/src/api/file/file.service.js +499 -0
  264. package/src/api/instance/instance.controller.js +8 -0
  265. package/src/api/instance/instance.model.js +34 -0
  266. package/src/api/instance/instance.router.js +27 -0
  267. package/src/api/instance/instance.service.js +75 -0
  268. package/src/api/ipfs/ipfs.controller.js +8 -0
  269. package/src/api/ipfs/ipfs.model.js +77 -0
  270. package/src/api/ipfs/ipfs.router.js +26 -0
  271. package/src/api/ipfs/ipfs.service.js +145 -0
  272. package/src/api/object-layer/object-layer.controller.js +18 -0
  273. package/src/api/object-layer/object-layer.model.js +200 -0
  274. package/src/api/object-layer/object-layer.router.js +729 -0
  275. package/src/api/object-layer/object-layer.service.js +894 -0
  276. package/src/api/object-layer-render-frames/object-layer-render-frames.controller.js +6 -0
  277. package/src/api/object-layer-render-frames/object-layer-render-frames.model.js +93 -0
  278. package/src/api/object-layer-render-frames/object-layer-render-frames.router.js +17 -0
  279. package/src/api/object-layer-render-frames/object-layer-render-frames.service.js +46 -0
  280. package/src/api/test/test.controller.js +14 -0
  281. package/src/api/test/test.model.js +14 -0
  282. package/src/api/test/test.router.js +23 -0
  283. package/src/api/test/test.service.js +35 -0
  284. package/src/api/types.js +24 -0
  285. package/src/api/user/guest.service.js +100 -0
  286. package/src/api/user/postman_collection.json +216 -0
  287. package/src/api/user/user.build.js +16 -0
  288. package/src/api/user/user.controller.js +35 -0
  289. package/src/api/user/user.model.js +142 -0
  290. package/src/api/user/user.router.js +367 -0
  291. package/src/api/user/user.service.js +582 -0
  292. package/src/api.js +23 -0
  293. package/src/cli/baremetal.js +3947 -0
  294. package/src/cli/cloud-init.js +673 -0
  295. package/src/cli/cluster.js +1395 -0
  296. package/src/cli/db.js +1533 -0
  297. package/src/cli/deploy.js +1542 -0
  298. package/src/cli/docker-compose.js +802 -0
  299. package/src/cli/env.js +177 -0
  300. package/src/cli/fs.js +380 -0
  301. package/src/cli/image.js +389 -0
  302. package/src/cli/index.js +1059 -0
  303. package/src/cli/ipfs.js +182 -0
  304. package/src/cli/kickstart.js +271 -0
  305. package/src/cli/kubectl.js +214 -0
  306. package/src/cli/lxd.js +1232 -0
  307. package/src/cli/monitor.js +659 -0
  308. package/src/cli/release.js +595 -0
  309. package/src/cli/repository.js +1969 -0
  310. package/src/cli/run.js +3326 -0
  311. package/src/cli/secrets.js +151 -0
  312. package/src/cli/ssh.js +975 -0
  313. package/src/cli/static.js +653 -0
  314. package/src/cli/system.js +332 -0
  315. package/src/cli/test.js +176 -0
  316. package/src/client/Cryptokoyn.index.js +30 -0
  317. package/src/client/CyberiaPortal.index.js +31 -0
  318. package/src/client/Default.index.js +77 -0
  319. package/src/client/Itemledger.index.js +35 -0
  320. package/src/client/Underpost.index.js +31 -0
  321. package/src/client/components/core/404.js +20 -0
  322. package/src/client/components/core/500.js +20 -0
  323. package/src/client/components/core/Account.js +630 -0
  324. package/src/client/components/core/AgGrid.js +238 -0
  325. package/src/client/components/core/Alert.js +76 -0
  326. package/src/client/components/core/AppStore.js +69 -0
  327. package/src/client/components/core/Auth.js +353 -0
  328. package/src/client/components/core/Badge.js +26 -0
  329. package/src/client/components/core/Blockchain.js +41 -0
  330. package/src/client/components/core/Blog.js +9 -0
  331. package/src/client/components/core/BtnIcon.js +109 -0
  332. package/src/client/components/core/CalendarCore.js +437 -0
  333. package/src/client/components/core/Chat.js +62 -0
  334. package/src/client/components/core/ClientEvents.js +163 -0
  335. package/src/client/components/core/ColorPaletteElement.js +309 -0
  336. package/src/client/components/core/CommonJs.js +1014 -0
  337. package/src/client/components/core/Content.js +349 -0
  338. package/src/client/components/core/Css.js +1134 -0
  339. package/src/client/components/core/CssCore.js +881 -0
  340. package/src/client/components/core/D3Chart.js +44 -0
  341. package/src/client/components/core/Docs.js +478 -0
  342. package/src/client/components/core/DropDown.js +321 -0
  343. package/src/client/components/core/EventBus.js +96 -0
  344. package/src/client/components/core/EventsUI.js +130 -0
  345. package/src/client/components/core/FileExplorer.js +1406 -0
  346. package/src/client/components/core/FullScreen.js +201 -0
  347. package/src/client/components/core/Input.js +537 -0
  348. package/src/client/components/core/Keyboard.js +80 -0
  349. package/src/client/components/core/KeyboardAvoidance.js +145 -0
  350. package/src/client/components/core/LoadingAnimation.js +152 -0
  351. package/src/client/components/core/LogIn.js +212 -0
  352. package/src/client/components/core/LogOut.js +72 -0
  353. package/src/client/components/core/Logger.js +22 -0
  354. package/src/client/components/core/Modal.js +2956 -0
  355. package/src/client/components/core/NotificationManager.js +80 -0
  356. package/src/client/components/core/Pagination.js +252 -0
  357. package/src/client/components/core/Panel.js +1308 -0
  358. package/src/client/components/core/PanelForm.js +915 -0
  359. package/src/client/components/core/Polyhedron.js +947 -0
  360. package/src/client/components/core/PublicProfile.js +895 -0
  361. package/src/client/components/core/Recover.js +211 -0
  362. package/src/client/components/core/Responsive.js +146 -0
  363. package/src/client/components/core/RichText.js +33 -0
  364. package/src/client/components/core/Router.js +523 -0
  365. package/src/client/components/core/Scroll.js +76 -0
  366. package/src/client/components/core/SearchBox.js +1007 -0
  367. package/src/client/components/core/SignUp.js +153 -0
  368. package/src/client/components/core/SocketIo.js +163 -0
  369. package/src/client/components/core/SocketIoHandler.js +75 -0
  370. package/src/client/components/core/Stream.js +161 -0
  371. package/src/client/components/core/ToggleSwitch.js +89 -0
  372. package/src/client/components/core/ToolTip.js +78 -0
  373. package/src/client/components/core/Translate.js +694 -0
  374. package/src/client/components/core/Validator.js +140 -0
  375. package/src/client/components/core/VanillaJs.js +485 -0
  376. package/src/client/components/core/Wallet.js +95 -0
  377. package/src/client/components/core/WebComponent.js +44 -0
  378. package/src/client/components/core/Webhook.js +58 -0
  379. package/src/client/components/core/Worker.js +313 -0
  380. package/src/client/components/core/windowGetDimensions.js +269 -0
  381. package/src/client/components/cryptokoyn/AppShellCryptokoyn.js +352 -0
  382. package/src/client/components/cryptokoyn/AppStoreCryptokoyn.js +5 -0
  383. package/src/client/components/cryptokoyn/CssCryptokoyn.js +212 -0
  384. package/src/client/components/cryptokoyn/LogInCryptokoyn.js +16 -0
  385. package/src/client/components/cryptokoyn/LogOutCryptokoyn.js +12 -0
  386. package/src/client/components/cryptokoyn/RouterCryptokoyn.js +37 -0
  387. package/src/client/components/cryptokoyn/SettingsCryptokoyn.js +16 -0
  388. package/src/client/components/cryptokoyn/SignUpCryptokoyn.js +11 -0
  389. package/src/client/components/cryptokoyn/SocketIoCryptokoyn.js +6 -0
  390. package/src/client/components/cyberia/ActionEngineCyberia.js +1867 -0
  391. package/src/client/components/cyberia/EntityEngineCyberia.js +585 -0
  392. package/src/client/components/cyberia/InstanceEngineCyberia.js +1088 -0
  393. package/src/client/components/cyberia/InstanceSelectionView.js +900 -0
  394. package/src/client/components/cyberia/MapEngineCyberia.js +1976 -0
  395. package/src/client/components/cyberia/ObjectLayerEngine.js +1540 -0
  396. package/src/client/components/cyberia/ObjectLayerEngineModal.js +2420 -0
  397. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +1522 -0
  398. package/src/client/components/cyberia/SharedDefaultsCyberia.js +528 -0
  399. package/src/client/components/cyberia-portal/AppShellCyberiaPortal.js +772 -0
  400. package/src/client/components/cyberia-portal/AppStoreCyberiaPortal.js +5 -0
  401. package/src/client/components/cyberia-portal/CssCyberiaPortal.js +254 -0
  402. package/src/client/components/cyberia-portal/LogInCyberiaPortal.js +21 -0
  403. package/src/client/components/cyberia-portal/LogOutCyberiaPortal.js +16 -0
  404. package/src/client/components/cyberia-portal/MainBodyCyberiaPortal.js +518 -0
  405. package/src/client/components/cyberia-portal/RouterCyberiaPortal.js +72 -0
  406. package/src/client/components/cyberia-portal/SettingsCyberiaPortal.js +16 -0
  407. package/src/client/components/cyberia-portal/SignUpCyberiaPortal.js +13 -0
  408. package/src/client/components/cyberia-portal/SocketIoCyberiaPortal.js +6 -0
  409. package/src/client/components/cyberia-portal/TranslateCyberiaPortal.js +48 -0
  410. package/src/client/components/default/AppShellDefault.js +765 -0
  411. package/src/client/components/default/AppStoreDefault.js +5 -0
  412. package/src/client/components/default/CommonDefault.js +29 -0
  413. package/src/client/components/default/CssDefault.js +27 -0
  414. package/src/client/components/default/LogInDefault.js +16 -0
  415. package/src/client/components/default/LogOutDefault.js +12 -0
  416. package/src/client/components/default/RouterDefault.js +47 -0
  417. package/src/client/components/default/SettingsDefault.js +16 -0
  418. package/src/client/components/default/SignUpDefault.js +11 -0
  419. package/src/client/components/default/SocketIoDefault.js +6 -0
  420. package/src/client/components/default/TranslateDefault.js +7 -0
  421. package/src/client/components/itemledger/AppShellItemledger.js +353 -0
  422. package/src/client/components/itemledger/AppStoreItemledger.js +5 -0
  423. package/src/client/components/itemledger/CssItemledger.js +212 -0
  424. package/src/client/components/itemledger/LogInItemledger.js +17 -0
  425. package/src/client/components/itemledger/LogOutItemledger.js +12 -0
  426. package/src/client/components/itemledger/RouterItemledger.js +38 -0
  427. package/src/client/components/itemledger/SettingsItemledger.js +16 -0
  428. package/src/client/components/itemledger/SignUpItemledger.js +11 -0
  429. package/src/client/components/itemledger/SocketIoItemledger.js +6 -0
  430. package/src/client/components/itemledger/TranslateItemledger.js +7 -0
  431. package/src/client/components/underpost/AppShellUnderpost.js +691 -0
  432. package/src/client/components/underpost/AppStoreUnderpost.js +5 -0
  433. package/src/client/components/underpost/CssUnderpost.js +281 -0
  434. package/src/client/components/underpost/CyberpunkBloggerUnderpost.js +879 -0
  435. package/src/client/components/underpost/DocumentSearchProvider.js +448 -0
  436. package/src/client/components/underpost/LabGalleryUnderpost.js +79 -0
  437. package/src/client/components/underpost/LogInUnderpost.js +25 -0
  438. package/src/client/components/underpost/LogOutUnderpost.js +17 -0
  439. package/src/client/components/underpost/RouterUnderpost.js +45 -0
  440. package/src/client/components/underpost/SettingsUnderpost.js +16 -0
  441. package/src/client/components/underpost/SignUpUnderpost.js +11 -0
  442. package/src/client/components/underpost/SocketIoUnderpost.js +6 -0
  443. package/src/client/components/underpost/TranslateUnderpost.js +10 -0
  444. package/src/client/public/cryptokoyn/assets/banner/koyn-social.png +0 -0
  445. package/src/client/public/cryptokoyn/assets/logo/base-icon.png +0 -0
  446. package/src/client/public/cryptokoyn/assets/logo/cryptokoyn.png +0 -0
  447. package/src/client/public/cryptokoyn/assets/splash/android-chrome-144x144.png +0 -0
  448. package/src/client/public/cryptokoyn/assets/splash/android-chrome-192x192.png +0 -0
  449. package/src/client/public/cryptokoyn/assets/splash/android-chrome-256x256.png +0 -0
  450. package/src/client/public/cryptokoyn/assets/splash/android-chrome-36x36.png +0 -0
  451. package/src/client/public/cryptokoyn/assets/splash/android-chrome-48x48.png +0 -0
  452. package/src/client/public/cryptokoyn/assets/splash/android-chrome-72x72.png +0 -0
  453. package/src/client/public/cryptokoyn/assets/splash/android-chrome-96x96.png +0 -0
  454. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114-precomposed.png +0 -0
  455. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-114x114.png +0 -0
  456. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120-precomposed.png +0 -0
  457. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-120x120.png +0 -0
  458. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144-precomposed.png +0 -0
  459. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-144x144.png +0 -0
  460. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152-precomposed.png +0 -0
  461. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-152x152.png +0 -0
  462. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180-precomposed.png +0 -0
  463. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-180x180.png +0 -0
  464. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57-precomposed.png +0 -0
  465. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-57x57.png +0 -0
  466. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60-precomposed.png +0 -0
  467. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-60x60.png +0 -0
  468. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72-precomposed.png +0 -0
  469. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-72x72.png +0 -0
  470. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76-precomposed.png +0 -0
  471. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-76x76.png +0 -0
  472. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon-precomposed.png +0 -0
  473. package/src/client/public/cryptokoyn/assets/splash/apple-touch-icon.png +0 -0
  474. package/src/client/public/cryptokoyn/assets/splash/favicon-16x16.png +0 -0
  475. package/src/client/public/cryptokoyn/assets/splash/favicon-32x32.png +0 -0
  476. package/src/client/public/cryptokoyn/assets/splash/mstile-144x144.png +0 -0
  477. package/src/client/public/cryptokoyn/assets/splash/mstile-150x150.png +0 -0
  478. package/src/client/public/cryptokoyn/assets/splash/mstile-310x150.png +0 -0
  479. package/src/client/public/cryptokoyn/assets/splash/mstile-310x310.png +0 -0
  480. package/src/client/public/cryptokoyn/assets/splash/mstile-70x70.png +0 -0
  481. package/src/client/public/cryptokoyn/assets/splash/safari-pinned-tab.svg +42 -0
  482. package/src/client/public/cryptokoyn/browserconfig.xml +12 -0
  483. package/src/client/public/cryptokoyn/favicon.ico +0 -0
  484. package/src/client/public/cryptokoyn/microdata.json +85 -0
  485. package/src/client/public/cryptokoyn/site.webmanifest +57 -0
  486. package/src/client/public/cryptokoyn/sitemap +148 -0
  487. package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +307 -0
  488. package/src/client/public/cyberia-docs/ARCHITECTURE.md +309 -0
  489. package/src/client/public/cyberia-docs/CYBERIA-CLI.md +204 -0
  490. package/src/client/public/cyberia-docs/CYBERIA-CLIENT.md +341 -0
  491. package/src/client/public/cyberia-docs/CYBERIA-LORE.md +84 -0
  492. package/src/client/public/cyberia-docs/CYBERIA-SAGA.md +394 -0
  493. package/src/client/public/cyberia-docs/CYBERIA-SERVER.md +294 -0
  494. package/src/client/public/cyberia-docs/CYBERIA.md +259 -0
  495. package/src/client/public/cyberia-docs/ENTITY-PROFILE.md +242 -0
  496. package/src/client/public/cyberia-docs/HARDHAT-MODULE.md +300 -0
  497. package/src/client/public/cyberia-docs/OFF-CHAIN-ECONOMY.md +309 -0
  498. package/src/client/public/cyberia-docs/QUEST-SYSTEM.md +228 -0
  499. package/src/client/public/cyberia-docs/ROADMAP.md +240 -0
  500. package/src/client/public/cyberia-docs/UNDERPOST-PLATFORM.md +106 -0
  501. package/src/client/public/cyberia-docs/WHITE-PAPER.md +740 -0
  502. package/src/client/public/default/android-chrome-144x144.png +0 -0
  503. package/src/client/public/default/android-chrome-192x192.png +0 -0
  504. package/src/client/public/default/android-chrome-256x256.png +0 -0
  505. package/src/client/public/default/android-chrome-36x36.png +0 -0
  506. package/src/client/public/default/android-chrome-384x384.png +0 -0
  507. package/src/client/public/default/android-chrome-48x48.png +0 -0
  508. package/src/client/public/default/android-chrome-512x512.png +0 -0
  509. package/src/client/public/default/android-chrome-72x72.png +0 -0
  510. package/src/client/public/default/android-chrome-96x96.png +0 -0
  511. package/src/client/public/default/apple-touch-icon-1024x1024.png +0 -0
  512. package/src/client/public/default/apple-touch-icon-114x114-precomposed.png +0 -0
  513. package/src/client/public/default/apple-touch-icon-114x114.png +0 -0
  514. package/src/client/public/default/apple-touch-icon-120x120-precomposed.png +0 -0
  515. package/src/client/public/default/apple-touch-icon-120x120.png +0 -0
  516. package/src/client/public/default/apple-touch-icon-144x144-precomposed.png +0 -0
  517. package/src/client/public/default/apple-touch-icon-144x144.png +0 -0
  518. package/src/client/public/default/apple-touch-icon-152x152-precomposed.png +0 -0
  519. package/src/client/public/default/apple-touch-icon-152x152.png +0 -0
  520. package/src/client/public/default/apple-touch-icon-167x167.png +0 -0
  521. package/src/client/public/default/apple-touch-icon-180x180-precomposed.png +0 -0
  522. package/src/client/public/default/apple-touch-icon-180x180.png +0 -0
  523. package/src/client/public/default/apple-touch-icon-57x57-precomposed.png +0 -0
  524. package/src/client/public/default/apple-touch-icon-57x57.png +0 -0
  525. package/src/client/public/default/apple-touch-icon-60x60-precomposed.png +0 -0
  526. package/src/client/public/default/apple-touch-icon-60x60.png +0 -0
  527. package/src/client/public/default/apple-touch-icon-72x72-precomposed.png +0 -0
  528. package/src/client/public/default/apple-touch-icon-72x72.png +0 -0
  529. package/src/client/public/default/apple-touch-icon-76x76-precomposed.png +0 -0
  530. package/src/client/public/default/apple-touch-icon-76x76.png +0 -0
  531. package/src/client/public/default/apple-touch-icon-precomposed.png +0 -0
  532. package/src/client/public/default/apple-touch-icon.png +0 -0
  533. package/src/client/public/default/apple-touch-startup-image-1125x2436.png +0 -0
  534. package/src/client/public/default/apple-touch-startup-image-1136x640.png +0 -0
  535. package/src/client/public/default/apple-touch-startup-image-1170x2532.png +0 -0
  536. package/src/client/public/default/apple-touch-startup-image-1179x2556.png +0 -0
  537. package/src/client/public/default/apple-touch-startup-image-1242x2208.png +0 -0
  538. package/src/client/public/default/apple-touch-startup-image-1242x2688.png +0 -0
  539. package/src/client/public/default/apple-touch-startup-image-1284x2778.png +0 -0
  540. package/src/client/public/default/apple-touch-startup-image-1290x2796.png +0 -0
  541. package/src/client/public/default/apple-touch-startup-image-1334x750.png +0 -0
  542. package/src/client/public/default/apple-touch-startup-image-1488x2266.png +0 -0
  543. package/src/client/public/default/apple-touch-startup-image-1536x2048.png +0 -0
  544. package/src/client/public/default/apple-touch-startup-image-1620x2160.png +0 -0
  545. package/src/client/public/default/apple-touch-startup-image-1640x2160.png +0 -0
  546. package/src/client/public/default/apple-touch-startup-image-1668x2224.png +0 -0
  547. package/src/client/public/default/apple-touch-startup-image-1668x2388.png +0 -0
  548. package/src/client/public/default/apple-touch-startup-image-1792x828.png +0 -0
  549. package/src/client/public/default/apple-touch-startup-image-2048x1536.png +0 -0
  550. package/src/client/public/default/apple-touch-startup-image-2048x2732.png +0 -0
  551. package/src/client/public/default/apple-touch-startup-image-2160x1620.png +0 -0
  552. package/src/client/public/default/apple-touch-startup-image-2160x1640.png +0 -0
  553. package/src/client/public/default/apple-touch-startup-image-2208x1242.png +0 -0
  554. package/src/client/public/default/apple-touch-startup-image-2224x1668.png +0 -0
  555. package/src/client/public/default/apple-touch-startup-image-2266x1488.png +0 -0
  556. package/src/client/public/default/apple-touch-startup-image-2388x1668.png +0 -0
  557. package/src/client/public/default/apple-touch-startup-image-2436x1125.png +0 -0
  558. package/src/client/public/default/apple-touch-startup-image-2532x1170.png +0 -0
  559. package/src/client/public/default/apple-touch-startup-image-2556x1179.png +0 -0
  560. package/src/client/public/default/apple-touch-startup-image-2688x1242.png +0 -0
  561. package/src/client/public/default/apple-touch-startup-image-2732x2048.png +0 -0
  562. package/src/client/public/default/apple-touch-startup-image-2778x1284.png +0 -0
  563. package/src/client/public/default/apple-touch-startup-image-2796x1290.png +0 -0
  564. package/src/client/public/default/apple-touch-startup-image-640x1136.png +0 -0
  565. package/src/client/public/default/apple-touch-startup-image-750x1334.png +0 -0
  566. package/src/client/public/default/apple-touch-startup-image-828x1792.png +0 -0
  567. package/src/client/public/default/assets/background/dark.jpg +0 -0
  568. package/src/client/public/default/assets/background/dark.svg +557 -0
  569. package/src/client/public/default/assets/background/white.jpg +0 -0
  570. package/src/client/public/default/assets/background/white0-min.jpg +0 -0
  571. package/src/client/public/default/assets/background/white0.jpg +0 -0
  572. package/src/client/public/default/assets/logo/base-icon.png +0 -0
  573. package/src/client/public/default/assets/logo/underpost.gif +0 -0
  574. package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
  575. package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
  576. package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
  577. package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
  578. package/src/client/public/default/browserconfig.xml +12 -0
  579. package/src/client/public/default/favicon-16x16.png +0 -0
  580. package/src/client/public/default/favicon-32x32.png +0 -0
  581. package/src/client/public/default/favicon-48x48.png +0 -0
  582. package/src/client/public/default/favicon.ico +0 -0
  583. package/src/client/public/default/manifest.webmanifest +69 -0
  584. package/src/client/public/default/mstile-144x144.png +0 -0
  585. package/src/client/public/default/mstile-150x150.png +0 -0
  586. package/src/client/public/default/mstile-310x150.png +0 -0
  587. package/src/client/public/default/mstile-310x310.png +0 -0
  588. package/src/client/public/default/mstile-70x70.png +0 -0
  589. package/src/client/public/default/safari-pinned-tab.svg +24 -0
  590. package/src/client/public/default/site.webmanifest +69 -0
  591. package/src/client/public/default/sitemap +148 -0
  592. package/src/client/public/default/yandex-browser-50x50.png +0 -0
  593. package/src/client/public/default/yandex-browser-manifest.json +9 -0
  594. package/src/client/public/doc/favicon.ico +0 -0
  595. package/src/client/public/doc/sitemap +148 -0
  596. package/src/client/public/itemledger/android-chrome-144x144.png +0 -0
  597. package/src/client/public/itemledger/android-chrome-192x192.png +0 -0
  598. package/src/client/public/itemledger/android-chrome-256x256.png +0 -0
  599. package/src/client/public/itemledger/android-chrome-36x36.png +0 -0
  600. package/src/client/public/itemledger/android-chrome-384x384.png +0 -0
  601. package/src/client/public/itemledger/android-chrome-48x48.png +0 -0
  602. package/src/client/public/itemledger/android-chrome-512x512.png +0 -0
  603. package/src/client/public/itemledger/android-chrome-72x72.png +0 -0
  604. package/src/client/public/itemledger/android-chrome-96x96.png +0 -0
  605. package/src/client/public/itemledger/apple-touch-icon-1024x1024.png +0 -0
  606. package/src/client/public/itemledger/apple-touch-icon-114x114.png +0 -0
  607. package/src/client/public/itemledger/apple-touch-icon-120x120.png +0 -0
  608. package/src/client/public/itemledger/apple-touch-icon-144x144.png +0 -0
  609. package/src/client/public/itemledger/apple-touch-icon-152x152.png +0 -0
  610. package/src/client/public/itemledger/apple-touch-icon-167x167.png +0 -0
  611. package/src/client/public/itemledger/apple-touch-icon-180x180.png +0 -0
  612. package/src/client/public/itemledger/apple-touch-icon-57x57.png +0 -0
  613. package/src/client/public/itemledger/apple-touch-icon-60x60.png +0 -0
  614. package/src/client/public/itemledger/apple-touch-icon-72x72.png +0 -0
  615. package/src/client/public/itemledger/apple-touch-icon-76x76.png +0 -0
  616. package/src/client/public/itemledger/apple-touch-icon-precomposed.png +0 -0
  617. package/src/client/public/itemledger/apple-touch-icon.png +0 -0
  618. package/src/client/public/itemledger/apple-touch-startup-image-1125x2436.png +0 -0
  619. package/src/client/public/itemledger/apple-touch-startup-image-1136x640.png +0 -0
  620. package/src/client/public/itemledger/apple-touch-startup-image-1170x2532.png +0 -0
  621. package/src/client/public/itemledger/apple-touch-startup-image-1179x2556.png +0 -0
  622. package/src/client/public/itemledger/apple-touch-startup-image-1242x2208.png +0 -0
  623. package/src/client/public/itemledger/apple-touch-startup-image-1242x2688.png +0 -0
  624. package/src/client/public/itemledger/apple-touch-startup-image-1284x2778.png +0 -0
  625. package/src/client/public/itemledger/apple-touch-startup-image-1290x2796.png +0 -0
  626. package/src/client/public/itemledger/apple-touch-startup-image-1334x750.png +0 -0
  627. package/src/client/public/itemledger/apple-touch-startup-image-1488x2266.png +0 -0
  628. package/src/client/public/itemledger/apple-touch-startup-image-1536x2048.png +0 -0
  629. package/src/client/public/itemledger/apple-touch-startup-image-1620x2160.png +0 -0
  630. package/src/client/public/itemledger/apple-touch-startup-image-1640x2160.png +0 -0
  631. package/src/client/public/itemledger/apple-touch-startup-image-1668x2224.png +0 -0
  632. package/src/client/public/itemledger/apple-touch-startup-image-1668x2388.png +0 -0
  633. package/src/client/public/itemledger/apple-touch-startup-image-1792x828.png +0 -0
  634. package/src/client/public/itemledger/apple-touch-startup-image-2048x1536.png +0 -0
  635. package/src/client/public/itemledger/apple-touch-startup-image-2048x2732.png +0 -0
  636. package/src/client/public/itemledger/apple-touch-startup-image-2160x1620.png +0 -0
  637. package/src/client/public/itemledger/apple-touch-startup-image-2160x1640.png +0 -0
  638. package/src/client/public/itemledger/apple-touch-startup-image-2208x1242.png +0 -0
  639. package/src/client/public/itemledger/apple-touch-startup-image-2224x1668.png +0 -0
  640. package/src/client/public/itemledger/apple-touch-startup-image-2266x1488.png +0 -0
  641. package/src/client/public/itemledger/apple-touch-startup-image-2388x1668.png +0 -0
  642. package/src/client/public/itemledger/apple-touch-startup-image-2436x1125.png +0 -0
  643. package/src/client/public/itemledger/apple-touch-startup-image-2532x1170.png +0 -0
  644. package/src/client/public/itemledger/apple-touch-startup-image-2556x1179.png +0 -0
  645. package/src/client/public/itemledger/apple-touch-startup-image-2688x1242.png +0 -0
  646. package/src/client/public/itemledger/apple-touch-startup-image-2732x2048.png +0 -0
  647. package/src/client/public/itemledger/apple-touch-startup-image-2778x1284.png +0 -0
  648. package/src/client/public/itemledger/apple-touch-startup-image-2796x1290.png +0 -0
  649. package/src/client/public/itemledger/apple-touch-startup-image-640x1136.png +0 -0
  650. package/src/client/public/itemledger/apple-touch-startup-image-750x1334.png +0 -0
  651. package/src/client/public/itemledger/apple-touch-startup-image-828x1792.png +0 -0
  652. package/src/client/public/itemledger/assets/logo/base-icon.png +0 -0
  653. package/src/client/public/itemledger/browserconfig.xml +12 -0
  654. package/src/client/public/itemledger/favicon-16x16.png +0 -0
  655. package/src/client/public/itemledger/favicon-32x32.png +0 -0
  656. package/src/client/public/itemledger/favicon-48x48.png +0 -0
  657. package/src/client/public/itemledger/favicon.ico +0 -0
  658. package/src/client/public/itemledger/manifest.webmanifest +69 -0
  659. package/src/client/public/itemledger/microdata.json +71 -0
  660. package/src/client/public/itemledger/mstile-144x144.png +0 -0
  661. package/src/client/public/itemledger/mstile-150x150.png +0 -0
  662. package/src/client/public/itemledger/mstile-310x150.png +0 -0
  663. package/src/client/public/itemledger/mstile-310x310.png +0 -0
  664. package/src/client/public/itemledger/mstile-70x70.png +0 -0
  665. package/src/client/public/itemledger/sitemap +148 -0
  666. package/src/client/public/itemledger/yandex-browser-50x50.png +0 -0
  667. package/src/client/public/itemledger/yandex-browser-manifest.json +9 -0
  668. package/src/client/public/test/favicon.ico +0 -0
  669. package/src/client/public/test/sitemap +148 -0
  670. package/src/client/services/atlas-sprite-sheet/atlas-sprite-sheet.service.js +137 -0
  671. package/src/client/services/core/core.service.js +309 -0
  672. package/src/client/services/crypto/crypto.service.js +68 -0
  673. package/src/client/services/cyberia-action/cyberia-action.service.js +99 -0
  674. package/src/client/services/cyberia-client-hints/cyberia-client-hints.service.js +99 -0
  675. package/src/client/services/cyberia-dialogue/cyberia-dialogue.service.js +99 -0
  676. package/src/client/services/cyberia-entity/cyberia-entity.management.js +57 -0
  677. package/src/client/services/cyberia-entity/cyberia-entity.service.js +99 -0
  678. package/src/client/services/cyberia-entity-type-default/cyberia-entity-type-default.service.js +99 -0
  679. package/src/client/services/cyberia-instance/cyberia-instance.management.js +194 -0
  680. package/src/client/services/cyberia-instance/cyberia-instance.service.js +137 -0
  681. package/src/client/services/cyberia-instance-conf/cyberia-instance-conf.service.js +99 -0
  682. package/src/client/services/cyberia-map/cyberia-map.management.js +193 -0
  683. package/src/client/services/cyberia-map/cyberia-map.service.js +120 -0
  684. package/src/client/services/cyberia-quest/cyberia-quest.service.js +99 -0
  685. package/src/client/services/cyberia-quest-progress/cyberia-quest-progress.service.js +99 -0
  686. package/src/client/services/cyberia-saga/cyberia-saga.service.js +99 -0
  687. package/src/client/services/cyberia-skill/cyberia-skill.service.js +99 -0
  688. package/src/client/services/default/default.management.js +1015 -0
  689. package/src/client/services/default/default.service.js +99 -0
  690. package/src/client/services/document/document.service.js +134 -0
  691. package/src/client/services/file/file.service.js +94 -0
  692. package/src/client/services/instance/instance.management.js +78 -0
  693. package/src/client/services/instance/instance.service.js +107 -0
  694. package/src/client/services/ipfs/ipfs.service.js +118 -0
  695. package/src/client/services/object-layer/object-layer.management.js +414 -0
  696. package/src/client/services/object-layer/object-layer.service.js +208 -0
  697. package/src/client/services/object-layer-render-frames/object-layer-render-frames.service.js +99 -0
  698. package/src/client/services/test/test.service.js +68 -0
  699. package/src/client/services/user/guest.service.js +86 -0
  700. package/src/client/services/user/user.management.js +51 -0
  701. package/src/client/services/user/user.service.js +106 -0
  702. package/src/client/ssr/RootDocument.js +237 -0
  703. package/src/client/ssr/body/404.js +77 -0
  704. package/src/client/ssr/body/500.js +76 -0
  705. package/src/client/ssr/body/CacheControl.js +117 -0
  706. package/src/client/ssr/body/CyberiaDefaultSplashScreen.js +97 -0
  707. package/src/client/ssr/body/DefaultSplashScreen.js +97 -0
  708. package/src/client/ssr/body/SwaggerDarkMode.js +285 -0
  709. package/src/client/ssr/body/UnderpostDefaultSplashScreen.js +90 -0
  710. package/src/client/ssr/head/CryptokoynScripts.js +4 -0
  711. package/src/client/ssr/head/Css.js +241 -0
  712. package/src/client/ssr/head/CyberiaPortalScripts.js +6 -0
  713. package/src/client/ssr/head/DefaultScripts.js +6 -0
  714. package/src/client/ssr/head/ItemledgerScripts.js +4 -0
  715. package/src/client/ssr/head/Microdata.js +11 -0
  716. package/src/client/ssr/head/Production.js +1 -0
  717. package/src/client/ssr/head/Pwa.js +146 -0
  718. package/src/client/ssr/head/PwaItemledger.js +197 -0
  719. package/src/client/ssr/head/Seo.js +15 -0
  720. package/src/client/ssr/head/UnderpostScripts.js +6 -0
  721. package/src/client/ssr/mailer/DefaultRecoverEmail.js +20 -0
  722. package/src/client/ssr/mailer/DefaultVerifyEmail.js +16 -0
  723. package/src/client/ssr/views/Cyberia404.js +328 -0
  724. package/src/client/ssr/views/CyberiaServerMetrics.js +1070 -0
  725. package/src/client/ssr/views/Maintenance.js +64 -0
  726. package/src/client/ssr/views/NoNetworkConnection.js +68 -0
  727. package/src/client/ssr/views/Test.js +199 -0
  728. package/src/client/sw/core.sw.js +274 -0
  729. package/src/client-builder/client-build-docs.js +493 -0
  730. package/src/client-builder/client-build-live.js +100 -0
  731. package/src/client-builder/client-build.js +1092 -0
  732. package/src/client-builder/client-dev-server.js +88 -0
  733. package/src/client-builder/client-formatted.js +170 -0
  734. package/src/client-builder/client-icons.js +108 -0
  735. package/src/client-builder/ssr.js +124 -0
  736. package/src/client.build.js +17 -0
  737. package/src/client.dev.js +21 -0
  738. package/src/db/DataBaseProvider.js +213 -0
  739. package/src/db/mariadb/MariaDB.js +72 -0
  740. package/src/db/mongo/MongoBootstrap.js +657 -0
  741. package/src/db/mongo/MongooseDB.js +199 -0
  742. package/src/grpc/cyberia/grpc-server.js +162 -0
  743. package/src/index.js +357 -0
  744. package/src/mailer/EmailRender.js +116 -0
  745. package/src/mailer/MailerProvider.js +213 -0
  746. package/src/projects/cyberia/atlas-sprite-sheet-generator.js +413 -0
  747. package/src/projects/cyberia/besu-genesis-generator.js +1630 -0
  748. package/src/projects/cyberia/catalog-cyberia.js +90 -0
  749. package/src/projects/cyberia/gemini-client.js +175 -0
  750. package/src/projects/cyberia/generate-saga.js +2137 -0
  751. package/src/projects/cyberia/hot-reload-trigger.js +163 -0
  752. package/src/projects/cyberia/instance-data.js +719 -0
  753. package/src/projects/cyberia/ipfs-client.js +599 -0
  754. package/src/projects/cyberia/map-preview-generator.js +304 -0
  755. package/src/projects/cyberia/object-layer.js +978 -0
  756. package/src/projects/cyberia/semantic-layer-generator-floor.js +319 -0
  757. package/src/projects/cyberia/semantic-layer-generator-resource.js +259 -0
  758. package/src/projects/cyberia/semantic-layer-generator-skin.js +1164 -0
  759. package/src/projects/cyberia/semantic-layer-generator.js +753 -0
  760. package/src/projects/cyberia/shape-generator.js +1060 -0
  761. package/src/projects/underpost/catalog-underpost.js +60 -0
  762. package/src/proxy.js +19 -0
  763. package/src/runtime/cyberia-client/Dockerfile +49 -0
  764. package/src/runtime/cyberia-client/Dockerfile.dev +75 -0
  765. package/src/runtime/cyberia-server/Dockerfile +43 -0
  766. package/src/runtime/cyberia-server/Dockerfile.dev +56 -0
  767. package/src/runtime/engine-cyberia/Dockerfile +161 -0
  768. package/src/runtime/engine-cyberia/Dockerfile.dev +161 -0
  769. package/src/runtime/engine-cyberia/Dockerfile.test +165 -0
  770. package/src/runtime/engine-cyberia/compose.env +144 -0
  771. package/src/runtime/engine-cyberia/docker-compose.yml +434 -0
  772. package/src/runtime/engine-cyberia/ipfs/configure-ipfs.sh +13 -0
  773. package/src/runtime/engine-cyberia/mongodb/entrypoint.sh +76 -0
  774. package/src/runtime/engine-cyberia/nginx.conf +128 -0
  775. package/src/runtime/express/Dockerfile +45 -0
  776. package/src/runtime/express/Express.js +285 -0
  777. package/src/runtime/lampp/Dockerfile +62 -0
  778. package/src/runtime/lampp/Lampp.js +359 -0
  779. package/src/runtime/nginx/Nginx.js +250 -0
  780. package/src/runtime/wp/Dockerfile +62 -0
  781. package/src/runtime/wp/Wp.js +642 -0
  782. package/src/server/auth.js +713 -0
  783. package/src/server/backup.js +102 -0
  784. package/src/server/catalog.js +72 -0
  785. package/src/server/conf.js +2316 -0
  786. package/src/server/cron.js +476 -0
  787. package/src/server/crypto.js +210 -0
  788. package/src/server/data-query.js +461 -0
  789. package/src/server/dns.js +553 -0
  790. package/src/server/downloader.js +73 -0
  791. package/src/server/logger.js +229 -0
  792. package/src/server/middlewares.js +152 -0
  793. package/src/server/peer.js +75 -0
  794. package/src/server/process.js +299 -0
  795. package/src/server/proxy.js +139 -0
  796. package/src/server/runtime-status.js +252 -0
  797. package/src/server/runtime.js +183 -0
  798. package/src/server/start.js +272 -0
  799. package/src/server/tls.js +254 -0
  800. package/src/server/valkey.js +201 -0
  801. package/src/server.js +25 -0
  802. package/src/ws/IoInterface.js +129 -0
  803. package/src/ws/IoServer.js +68 -0
  804. package/src/ws/core/channels/core.ws.chat.js +68 -0
  805. package/src/ws/core/channels/core.ws.mailer.js +116 -0
  806. package/src/ws/core/channels/core.ws.stream.js +90 -0
  807. package/src/ws/core/core.ws.connection.js +41 -0
  808. package/src/ws/core/core.ws.emit.js +37 -0
  809. package/src/ws/core/core.ws.server.js +44 -0
  810. package/src/ws/default/channels/default.ws.main.js +57 -0
  811. package/src/ws/default/default.ws.connection.js +35 -0
  812. package/src/ws/default/default.ws.emit.js +14 -0
  813. package/src/ws/default/default.ws.server.js +39 -0
  814. package/test/api.test.js +53 -0
  815. package/test/crypto.test.js +117 -0
  816. package/test/cyberia-instance-conf-defaults.test.js +140 -0
  817. package/test/deploy-monitor.test.js +267 -0
  818. package/test/shape-generator.test.js +463 -0
  819. package/tsconfig.docs.json +15 -0
  820. package/typedoc.dd-cyberia.json +31 -0
  821. package/typedoc.json +31 -0
package/Dockerfile ADDED
@@ -0,0 +1,161 @@
1
+ # syntax=docker/dockerfile:1.7
2
+ #
3
+ # engine-cyberia — PRODUCTION image (underpost/engine-cyberia).
4
+ #
5
+ # ---------------------------------------------------------------------------
6
+ # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
+ # ---------------------------------------------------------------------------
8
+ FROM rockylinux/rockylinux:9 AS builder
9
+ ARG UNDERPOST_VERSION=3.2.80
10
+ # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
+ # underpost's dependencies require >=24.15.0, so install the official binary.
12
+ ARG NODE_VERSION=24.15.0
13
+ ENV NODE_ENV=production
14
+
15
+ RUN set -eux; \
16
+ # `sudo` is required because underpost's build steps shell out to
17
+ # `sudo cp`/`sudo rm` (src/server/start.js); the build runs as root so sudo
18
+ # is just a passthrough, but the binary must exist.
19
+ dnf install -y git openssl tar xz sudo; \
20
+ arch="$(uname -m)"; \
21
+ case "$arch" in \
22
+ x86_64) node_arch=x64 ;; \
23
+ aarch64) node_arch=arm64 ;; \
24
+ *) echo "unsupported arch: $arch" >&2; exit 1 ;; \
25
+ esac; \
26
+ curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${node_arch}.tar.xz" \
27
+ | tar -xJ -C /usr/local --strip-components=1; \
28
+ node --version; npm --version; \
29
+ npm install -g underpost@${UNDERPOST_VERSION}; \
30
+ dnf clean all; rm -rf /var/cache/dnf; \
31
+ npm cache clean --force
32
+
33
+ WORKDIR /home/dd
34
+
35
+ # Comma-separated instance codes to provision (backup dir + optional saga).
36
+ # `node bin/cyberia run-workflow build-manifest` rewrites this default from the
37
+ # conf.instances.json multiInstance variants; override at build with
38
+ # `--build-arg INSTANCE_CODES=...`. Declared as an ARG (not a marker-wrapped
39
+ # shell string) so the value is clean — a `/** … */` literal in the shell would
40
+ # glob-expand in the `for` loop below.
41
+ ARG INSTANCE_CODES="amethyst-strata-expansion,FOREST"
42
+
43
+ RUN --mount=type=secret,id=github_username \
44
+ # --mount=type=secret,id=github_token \
45
+ set -eu; \
46
+ export GITHUB_USERNAME="$(cat /run/secrets/github_username)"; \
47
+ # export GITHUB_TOKEN="$(cat /run/secrets/github_token)"; \
48
+ export ENGINE_CYBERIA_REPO="engine-cyberia"; \
49
+ cd /home/dd; \
50
+ underpost clone "$GITHUB_USERNAME/$ENGINE_CYBERIA_REPO"; \
51
+ mkdir -p /home/dd/engine; \
52
+ cp -a ./"$ENGINE_CYBERIA_REPO"/. /home/dd/engine/; \
53
+ rm -rf ./"$ENGINE_CYBERIA_REPO"; \
54
+ cd /home/dd; \
55
+ underpost clone "$GITHUB_USERNAME/cyberia-instances"; \
56
+ rm -rf /home/dd/engine/engine-private; \
57
+ mkdir -p /home/dd/engine/engine-private/conf/dd-cyberia; \
58
+ cp -a ./cyberia-instances/conf/dd-cyberia/. /home/dd/engine/engine-private/conf/dd-cyberia/.; \
59
+ cp -a /home/dd/engine/engine-private/conf/dd-cyberia/package.json /home/dd/engine/package.json; \
60
+ # Per instance code: copy its backup dir and, when present, its top-level
61
+ # saga (cyberia-instances/sagas/<code>.json). The engine boot seed
62
+ # (`run-workflow import-default-items`) reads engine-private/cyberia-sagas/
63
+ # <code>.json — without it generate-saga fails and the engine crash-loops.
64
+ # A code with no top-level saga is imported from its backup dir instead.
65
+ mkdir -p /home/dd/engine/engine-private/cyberia-instances; \
66
+ mkdir -p /home/dd/engine/engine-private/cyberia-sagas; \
67
+ for _ic in $(echo "$INSTANCE_CODES" | tr ',' ' '); do \
68
+ cp -a ./cyberia-instances/instances/"$_ic" /home/dd/engine/engine-private/cyberia-instances/"$_ic"; \
69
+ if [ -f ./cyberia-instances/sagas/"$_ic".json ]; then \
70
+ cp -a ./cyberia-instances/sagas/"$_ic".json /home/dd/engine/engine-private/cyberia-sagas/"$_ic".json; \
71
+ fi; \
72
+ done; \
73
+ mkdir -p /home/dd/engine/src/client/public/cyberia; \
74
+ cp -a ./cyberia-instances/public/cyberia/. /home/dd/engine/src/client/public/cyberia/.; \
75
+ # The engine gRPC server loads its schema at runtime from
76
+ # cyberia-server/gen/proto/cyberia.proto (src/grpc/cyberia/grpc-server.js);
77
+ # fetch just that file so the engine can bind :50051 / :4005 without the
78
+ # full cyberia-server repo.
79
+ underpost clone "$GITHUB_USERNAME/cyberia-server"; \
80
+ mkdir -p /home/dd/engine/cyberia-server/gen/proto; \
81
+ cp -a ./cyberia-server/gen/proto/cyberia.proto /home/dd/engine/cyberia-server/gen/proto/cyberia.proto; \
82
+ rm -rf ./cyberia-server; \
83
+ cd /home/dd/engine; \
84
+ # --- install deps + env, then replay build-safe itc provisioning ----------
85
+ npm install; \
86
+ node bin env dd-cyberia production; \
87
+ ( cd /home/dd/engine/hardhat && npm install --include=dev ); \
88
+ # --- build the client bundle (assets are now in place) --------------------
89
+ cd /home/dd/engine; \
90
+ node bin client dd-cyberia; \
91
+ # --- CREDENTIAL SCRUB (defense in depth, while secrets are still in scope) -
92
+ # 1) Redact every real secret value from any file it may have reached.
93
+ # for _secret in "$GITHUB_TOKEN" "$CLOUDINARY_API_SECRET" "$CLOUDINARY_API_KEY"; do \
94
+ for _secret in "$GITHUB_USERNAME"; do \
95
+ # for _secret in "$GITHUB_USERNAME" "$GITHUB_TOKEN"; do \
96
+ [ -n "$_secret" ] || continue; \
97
+ grep -rlF --exclude-dir=node_modules --exclude-dir=.git "$_secret" /home/dd/engine 2>/dev/null \
98
+ | xargs -r sed -i "s#${_secret}#__REDACTED__#g" || true; \
99
+ done; \
100
+ # unset GITHUB_TOKEN GITHUB_USERNAME; \
101
+ # unset GITHUB_TOKEN GITHUB_USERNAME CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET; \
102
+ unset GITHUB_USERNAME; \
103
+
104
+ # 2) Every .git dir — clone URLs embed the token in .git/config, and the
105
+ # private history itself must not ship.
106
+ find /home/dd/engine -type d -name .git -prune -exec rm -rf {} + 2>/dev/null || true; \
107
+ # 3) User-level credential stores possibly written during the build.
108
+ rm -rf /root/.gitconfig /root/.git-credentials /root/.config/git \
109
+ /root/.netrc /root/.ssh /root/.npm /root/.cache /root/.node-gyp; \
110
+ # 4) The underpost global env store may hold GITHUB_TOKEN.
111
+ rm -f "$(underpost root)/underpost/.env" 2>/dev/null || true; \
112
+ # 5) Build caches, temp, and build-only toolchains. hardhat is contract
113
+ # build/CLI tooling (used only to build the coverage docs above); the
114
+ # runtime server never imports it, so its dev node_modules is pure bloat.
115
+ npm cache clean --force 2>/dev/null || true; \
116
+ rm -rf /home/dd/cyberia-instances \
117
+ /home/dd/engine/src/client/public/itemledger \
118
+ /home/dd/engine/src/client/public/cryptokoyn \
119
+ /home/dd/engine/src/client/components/cryptokoyn \
120
+ /home/dd/engine/src/client/components/itemledger \
121
+ /home/dd/engine/src/client/Itemledger.index.js \
122
+ /home/dd/engine/src/client/Cryptokoyn.index.js \
123
+ /home/dd/engine/hardhat/node_modules \
124
+ /home/dd/engine/.npm /tmp/* /var/tmp/* /var/cache/dnf
125
+
126
+ # ---------------------------------------------------------------------------
127
+ # Stage 2 — runtime: clean base + pinned Node toolchain + scrubbed app tree.
128
+ # ---------------------------------------------------------------------------
129
+ FROM rockylinux/rockylinux:9 AS runtime
130
+ ENV NODE_ENV=production
131
+
132
+ # Node + npm + the underpost CLI (exact pinned version) from the builder — no
133
+ # re-download, no git/build toolchain. libstdc++ is the only runtime lib the
134
+ # prebuilt Node binary needs beyond the base image.
135
+ COPY --from=builder /usr/local/ /usr/local/
136
+ RUN dnf install -y libstdc++ git sudo && dnf clean all && rm -rf /var/cache/dnf && \
137
+ useradd --create-home --home-dir /home/dd --shell /usr/sbin/nologin dd && \
138
+ # The runtime runs as `dd`, but `underpost start --build` shells out to `sudo cp`/`sudo rm`
139
+ # (src/server/start.js). Grant passwordless sudo so those succeed without a TTY/password.
140
+ printf 'dd ALL=(ALL) NOPASSWD:ALL\n' > /etc/sudoers.d/dd && chmod 0440 /etc/sudoers.d/dd && \
141
+ # underpost persists its global env at $(npm root -g)/underpost/.env; the
142
+ # non-root runtime user must be able to write it (fixes EACCES on start).
143
+ chown -R dd:dd /usr/local/lib/node_modules/underpost
144
+
145
+ # Copy ONLY the scrubbed runtime tree — no .git, no token, no caches.
146
+ COPY --from=builder --chown=dd:dd /home/dd/engine /home/dd/engine
147
+
148
+ RUN chmod +x /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh && \
149
+ /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh
150
+
151
+ # Explicit re-chown: PVC-backed mounts under src/client/public land here at
152
+ # pod start and may override the COPY --chown above with root ownership.
153
+ RUN chown -R dd:dd /home/dd/engine/src/client/public
154
+
155
+ USER dd
156
+ WORKDIR /home/dd/engine
157
+
158
+ EXPOSE 3005
159
+ EXPOSE 50051
160
+
161
+ CMD ["/bin/sh", "-c", "underpost start --run dd-cyberia production"]
package/Dockerfile.dev ADDED
@@ -0,0 +1,161 @@
1
+ # syntax=docker/dockerfile:1.7
2
+ #
3
+ # engine-cyberia — DEVELOPMENT image (underpost/engine-cyberia-dev).
4
+ #
5
+ # ---------------------------------------------------------------------------
6
+ # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
+ # ---------------------------------------------------------------------------
8
+ FROM rockylinux/rockylinux:9 AS builder
9
+ ARG UNDERPOST_VERSION=3.2.80
10
+ # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
+ # underpost's dependencies require >=24.15.0, so install the official binary.
12
+ ARG NODE_VERSION=24.15.0
13
+ ENV NODE_ENV=development
14
+
15
+ RUN set -eux; \
16
+ # `sudo` is required because underpost's build steps shell out to
17
+ # `sudo cp`/`sudo rm` (src/server/start.js); the build runs as root so sudo
18
+ # is just a passthrough, but the binary must exist.
19
+ dnf install -y git openssl tar xz sudo; \
20
+ arch="$(uname -m)"; \
21
+ case "$arch" in \
22
+ x86_64) node_arch=x64 ;; \
23
+ aarch64) node_arch=arm64 ;; \
24
+ *) echo "unsupported arch: $arch" >&2; exit 1 ;; \
25
+ esac; \
26
+ curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${node_arch}.tar.xz" \
27
+ | tar -xJ -C /usr/local --strip-components=1; \
28
+ node --version; npm --version; \
29
+ npm install -g underpost@${UNDERPOST_VERSION}; \
30
+ dnf clean all; rm -rf /var/cache/dnf; \
31
+ npm cache clean --force
32
+
33
+ WORKDIR /home/dd
34
+
35
+ # Comma-separated instance codes to provision (backup dir + optional saga).
36
+ # `node bin/cyberia run-workflow build-manifest` rewrites this default from the
37
+ # conf.instances.json multiInstance variants; override at build with
38
+ # `--build-arg INSTANCE_CODES=...`. Declared as an ARG (not a marker-wrapped
39
+ # shell string) so the value is clean — a `/** … */` literal in the shell would
40
+ # glob-expand in the `for` loop below.
41
+ ARG INSTANCE_CODES="amethyst-strata-expansion,FOREST"
42
+
43
+ RUN --mount=type=secret,id=github_username \
44
+ # --mount=type=secret,id=github_token \
45
+ set -eu; \
46
+ export GITHUB_USERNAME="$(cat /run/secrets/github_username)"; \
47
+ # export GITHUB_TOKEN="$(cat /run/secrets/github_token)"; \
48
+ export ENGINE_CYBERIA_REPO="engine-cyberia"; \
49
+ cd /home/dd; \
50
+ underpost clone "$GITHUB_USERNAME/$ENGINE_CYBERIA_REPO"; \
51
+ mkdir -p /home/dd/engine; \
52
+ cp -a ./"$ENGINE_CYBERIA_REPO"/. /home/dd/engine/; \
53
+ rm -rf ./"$ENGINE_CYBERIA_REPO"; \
54
+ cd /home/dd; \
55
+ underpost clone "$GITHUB_USERNAME/cyberia-instances"; \
56
+ rm -rf /home/dd/engine/engine-private; \
57
+ mkdir -p /home/dd/engine/engine-private/conf/dd-cyberia; \
58
+ cp -a ./cyberia-instances/conf/dd-cyberia/. /home/dd/engine/engine-private/conf/dd-cyberia/.; \
59
+ cp -a /home/dd/engine/engine-private/conf/dd-cyberia/package.json /home/dd/engine/package.json; \
60
+ # Per instance code: copy its backup dir and, when present, its top-level
61
+ # saga (cyberia-instances/sagas/<code>.json). The engine boot seed
62
+ # (`run-workflow import-default-items`) reads engine-private/cyberia-sagas/
63
+ # <code>.json — without it generate-saga fails and the engine crash-loops.
64
+ # A code with no top-level saga is imported from its backup dir instead.
65
+ mkdir -p /home/dd/engine/engine-private/cyberia-instances; \
66
+ mkdir -p /home/dd/engine/engine-private/cyberia-sagas; \
67
+ for _ic in $(echo "$INSTANCE_CODES" | tr ',' ' '); do \
68
+ cp -a ./cyberia-instances/instances/"$_ic" /home/dd/engine/engine-private/cyberia-instances/"$_ic"; \
69
+ if [ -f ./cyberia-instances/sagas/"$_ic".json ]; then \
70
+ cp -a ./cyberia-instances/sagas/"$_ic".json /home/dd/engine/engine-private/cyberia-sagas/"$_ic".json; \
71
+ fi; \
72
+ done; \
73
+ mkdir -p /home/dd/engine/src/client/public/cyberia; \
74
+ cp -a ./cyberia-instances/public/cyberia/. /home/dd/engine/src/client/public/cyberia/.; \
75
+ # The engine gRPC server loads its schema at runtime from
76
+ # cyberia-server/gen/proto/cyberia.proto (src/grpc/cyberia/grpc-server.js);
77
+ # fetch just that file so the engine can bind :50051 / :4005 without the
78
+ # full cyberia-server repo.
79
+ underpost clone "$GITHUB_USERNAME/cyberia-server"; \
80
+ mkdir -p /home/dd/engine/cyberia-server/gen/proto; \
81
+ cp -a ./cyberia-server/gen/proto/cyberia.proto /home/dd/engine/cyberia-server/gen/proto/cyberia.proto; \
82
+ rm -rf ./cyberia-server; \
83
+ cd /home/dd/engine; \
84
+ # --- install deps + env, then replay build-safe itc provisioning ----------
85
+ npm install; \
86
+ node bin env dd-cyberia development; \
87
+ ( cd /home/dd/engine/hardhat && npm install --include=dev ); \
88
+ # --- build the client bundle (assets are now in place) --------------------
89
+ cd /home/dd/engine; \
90
+ node bin client dd-cyberia; \
91
+ # --- CREDENTIAL SCRUB (defense in depth, while secrets are still in scope) -
92
+ # 1) Redact every real secret value from any file it may have reached.
93
+ # for _secret in "$GITHUB_TOKEN" "$CLOUDINARY_API_SECRET" "$CLOUDINARY_API_KEY"; do \
94
+ for _secret in "$GITHUB_USERNAME"; do \
95
+ # for _secret in "$GITHUB_USERNAME" "$GITHUB_TOKEN"; do \
96
+ [ -n "$_secret" ] || continue; \
97
+ grep -rlF --exclude-dir=node_modules --exclude-dir=.git "$_secret" /home/dd/engine 2>/dev/null \
98
+ | xargs -r sed -i "s#${_secret}#__REDACTED__#g" || true; \
99
+ done; \
100
+ # unset GITHUB_TOKEN GITHUB_USERNAME; \
101
+ # unset GITHUB_TOKEN GITHUB_USERNAME CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET; \
102
+ unset GITHUB_USERNAME; \
103
+
104
+ # 2) Every .git dir — clone URLs embed the token in .git/config, and the
105
+ # private history itself must not ship.
106
+ find /home/dd/engine -type d -name .git -prune -exec rm -rf {} + 2>/dev/null || true; \
107
+ # 3) User-level credential stores possibly written during the build.
108
+ rm -rf /root/.gitconfig /root/.git-credentials /root/.config/git \
109
+ /root/.netrc /root/.ssh /root/.npm /root/.cache /root/.node-gyp; \
110
+ # 4) The underpost global env store may hold GITHUB_TOKEN.
111
+ rm -f "$(underpost root)/underpost/.env" 2>/dev/null || true; \
112
+ # 5) Build caches, temp, and build-only toolchains. hardhat is contract
113
+ # build/CLI tooling (used only to build the coverage docs above); the
114
+ # runtime server never imports it, so its dev node_modules is pure bloat.
115
+ npm cache clean --force 2>/dev/null || true; \
116
+ rm -rf /home/dd/cyberia-instances \
117
+ /home/dd/engine/src/client/public/itemledger \
118
+ /home/dd/engine/src/client/public/cryptokoyn \
119
+ /home/dd/engine/src/client/components/cryptokoyn \
120
+ /home/dd/engine/src/client/components/itemledger \
121
+ /home/dd/engine/src/client/Itemledger.index.js \
122
+ /home/dd/engine/src/client/Cryptokoyn.index.js \
123
+ /home/dd/engine/hardhat/node_modules \
124
+ /home/dd/engine/.npm /tmp/* /var/tmp/* /var/cache/dnf
125
+
126
+ # ---------------------------------------------------------------------------
127
+ # Stage 2 — runtime: clean base + pinned Node toolchain + scrubbed app tree.
128
+ # ---------------------------------------------------------------------------
129
+ FROM rockylinux/rockylinux:9 AS runtime
130
+ ENV NODE_ENV=development
131
+
132
+ # Node + npm + the underpost CLI (exact pinned version) from the builder — no
133
+ # re-download, no git/build toolchain. libstdc++ is the only runtime lib the
134
+ # prebuilt Node binary needs beyond the base image.
135
+ COPY --from=builder /usr/local/ /usr/local/
136
+ RUN dnf install -y libstdc++ git sudo && dnf clean all && rm -rf /var/cache/dnf && \
137
+ useradd --create-home --home-dir /home/dd --shell /usr/sbin/nologin dd && \
138
+ # The runtime runs as `dd`, but `underpost start --build` shells out to `sudo cp`/`sudo rm`
139
+ # (src/server/start.js). Grant passwordless sudo so those succeed without a TTY/password.
140
+ printf 'dd ALL=(ALL) NOPASSWD:ALL\n' > /etc/sudoers.d/dd && chmod 0440 /etc/sudoers.d/dd && \
141
+ # underpost persists its global env at $(npm root -g)/underpost/.env; the
142
+ # non-root runtime user must be able to write it (fixes EACCES on start).
143
+ chown -R dd:dd /usr/local/lib/node_modules/underpost
144
+
145
+ # Copy ONLY the scrubbed runtime tree — no .git, no token, no caches.
146
+ COPY --from=builder --chown=dd:dd /home/dd/engine /home/dd/engine
147
+
148
+ RUN chmod +x /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh && \
149
+ /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh
150
+
151
+ # Explicit re-chown: PVC-backed mounts under src/client/public land here at
152
+ # pod start and may override the COPY --chown above with root ownership.
153
+ RUN chown -R dd:dd /home/dd/engine/src/client/public
154
+
155
+ USER dd
156
+ WORKDIR /home/dd/engine
157
+
158
+ EXPOSE 4005
159
+ EXPOSE 50051
160
+
161
+ CMD ["/bin/sh", "-c", "underpost start --run dd-cyberia development"]
@@ -0,0 +1,165 @@
1
+ # syntax=docker/dockerfile:1.7
2
+ #
3
+ # engine-cyberia — DEVELOPMENT image (underpost/engine-cyberia-dev).
4
+ #
5
+ # ---------------------------------------------------------------------------
6
+ # Stage 1 — builder: clone the private deploy, build it, then scrub secrets.
7
+ # ---------------------------------------------------------------------------
8
+ FROM rockylinux/rockylinux:9 AS builder
9
+ ARG UNDERPOST_VERSION=3.2.80
10
+ # Pin Node to an exact patch: dnf's nodejs:24 module lags (24.14.1) while
11
+ # underpost's dependencies require >=24.15.0, so install the official binary.
12
+ ARG NODE_VERSION=24.15.0
13
+ ENV NODE_ENV=development
14
+
15
+ RUN set -eux; \
16
+ # `sudo` is required because underpost's build steps shell out to
17
+ # `sudo cp`/`sudo rm` (src/server/start.js); the build runs as root so sudo
18
+ # is just a passthrough, but the binary must exist.
19
+ dnf install -y git openssl tar xz sudo; \
20
+ arch="$(uname -m)"; \
21
+ case "$arch" in \
22
+ x86_64) node_arch=x64 ;; \
23
+ aarch64) node_arch=arm64 ;; \
24
+ *) echo "unsupported arch: $arch" >&2; exit 1 ;; \
25
+ esac; \
26
+ curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${node_arch}.tar.xz" \
27
+ | tar -xJ -C /usr/local --strip-components=1; \
28
+ node --version; npm --version; \
29
+ npm install -g underpost@${UNDERPOST_VERSION}; \
30
+ dnf clean all; rm -rf /var/cache/dnf; \
31
+ npm cache clean --force
32
+
33
+ WORKDIR /home/dd
34
+
35
+ # Single hermetic RUN: GitHub credentials are mounted as secrets (readable only
36
+ # here, never persisted), used to clone + build the private dd-cyberia deploy,
37
+ # then every credential/secret/VCS trace is removed BEFORE this layer commits.
38
+ RUN --mount=type=secret,id=github_token \
39
+ --mount=type=secret,id=github_username \
40
+ --mount=type=secret,id=cloudinary_cloud_name \
41
+ --mount=type=secret,id=cloudinary_api_key \
42
+ --mount=type=secret,id=cloudinary_api_secret \
43
+ set -eu; \
44
+ export GITHUB_TOKEN="$(cat /run/secrets/github_token)"; \
45
+ export GITHUB_USERNAME="$(cat /run/secrets/github_username)"; \
46
+ # Cloudinary creds power the `node bin fs --pull` asset downloads below; they
47
+ # are optional (empty when not provided) so builds that don't need assets
48
+ # still work.
49
+ export CLOUDINARY_CLOUD_NAME="$(cat /run/secrets/cloudinary_cloud_name 2>/dev/null || true)"; \
50
+ export CLOUDINARY_API_KEY="$(cat /run/secrets/cloudinary_api_key 2>/dev/null || true)"; \
51
+ export CLOUDINARY_API_SECRET="$(cat /run/secrets/cloudinary_api_secret 2>/dev/null || true)"; \
52
+ \
53
+ # --- fetch sources under our control, then build WITHOUT itc-scripts -----
54
+ # itc-scripts are DEPLOY-time provisioning; the DB-seeding parts (`cyberia
55
+ # ol --drop`, `instance --import`) and the in-cluster .env rewrite cannot run
56
+ # in a hermetic build, so we strip the scripts and replay ONLY the build-safe
57
+ # provisioning steps inline (asset pulls, ffmpeg, hardhat deps, cyberia-server
58
+ # clone). Pre-clone so privateEngineRepoFactory no-ops and --skip-pull-base
59
+ # reuses the tree.
60
+ export ENGINE_CYBERIA_REPO="engine-cyberia"; \
61
+ cd /home/dd; \
62
+ underpost clone "$GITHUB_USERNAME/$ENGINE_CYBERIA_REPO"; \
63
+ mkdir -p /home/dd/engine; \
64
+ cp -a ./"$ENGINE_CYBERIA_REPO"/. /home/dd/engine/; \
65
+ rm -rf ./"$ENGINE_CYBERIA_REPO"; \
66
+ cd /home/dd/engine; \
67
+ rm -rf ./engine-private; \
68
+ underpost clone "$GITHUB_USERNAME/engine-cyberia-private"; \
69
+ mv ./engine-cyberia-private ./engine-private; \
70
+ rm -rf ./engine-private/itc-scripts; \
71
+ \
72
+ # --- install deps + env, then replay build-safe itc provisioning ----------
73
+ npm install; \
74
+ node bin env dd-cyberia development; \
75
+ node bin fs --pull --recursive --deploy-id dd-cyberia --storage-file-path './engine-private/conf/dd-cyberia/storage.engine-cyberia.json'; \
76
+ ( cd /home/dd/engine/hardhat && npm install --include=dev ); \
77
+ ( cd /home/dd/engine && underpost clone underpostnet/cyberia-server ); \
78
+ \
79
+ # --- build the client bundle (assets are now in place) --------------------
80
+ node bin client dd-cyberia; \
81
+ \
82
+ # --- bake NON-secret env (placeholders; real creds come from runtime env) -
83
+ CONF=/home/dd/engine/engine-private/conf/dd-cyberia; \
84
+ cp -a "$CONF/docker-compose/cyberia/compose.env" "$CONF/.env.development"; \
85
+ cp -a "$CONF/docker-compose/cyberia/compose.env" "$CONF/.env.production"; \
86
+ cp -a "$CONF/docker-compose/cyberia/compose.env" "$CONF/.env.test"; \
87
+ cp -a "$CONF/conf.server.dev.dev.json" "$CONF/conf.server.json"; \
88
+ cp -a "$CONF/docker-compose/cyberia/compose.env" /home/dd/engine/.env; \
89
+ \
90
+ # --- drop build-only / non-runtime private material ----------------------
91
+ rm -rf /home/dd/engine/engine-private/itc-scripts; \
92
+ rm -rf /home/dd/engine/engine-private/cyberia-instances/FOREST; \
93
+ rm -rf /home/dd/engine/engine-private/logs; \
94
+ rm -rf "$CONF/build" "$CONF/instances"; \
95
+ rm -rf "$CONF/conf.instances.json"; \
96
+ rm -rf "$CONF/conf.server.dev.underpost.json"; \
97
+ rm -rf "$CONF/storage.bundle.json"; \
98
+ rm -rf "$CONF/storage.json"; \
99
+ rm -rf "$CONF/storage.underpost.json"; \
100
+ \
101
+ # --- CREDENTIAL SCRUB (defense in depth, while secrets are still in scope) -
102
+ # 1) Redact every real secret value from any file it may have reached.
103
+ for _secret in "$GITHUB_TOKEN" "$CLOUDINARY_API_SECRET" "$CLOUDINARY_API_KEY"; do \
104
+ [ -n "$_secret" ] || continue; \
105
+ grep -rlF --exclude-dir=node_modules --exclude-dir=.git "$_secret" /home/dd/engine 2>/dev/null \
106
+ | xargs -r sed -i "s#${_secret}#__REDACTED__#g" || true; \
107
+ done; \
108
+ unset GITHUB_TOKEN GITHUB_USERNAME CLOUDINARY_CLOUD_NAME CLOUDINARY_API_KEY CLOUDINARY_API_SECRET; \
109
+ # 2) Every .git dir — clone URLs embed the token in .git/config, and the
110
+ # private history itself must not ship.
111
+ find /home/dd/engine -type d -name .git -prune -exec rm -rf {} + 2>/dev/null || true; \
112
+ # 3) User-level credential stores possibly written during the build.
113
+ rm -rf /root/.gitconfig /root/.git-credentials /root/.config/git \
114
+ /root/.netrc /root/.ssh /root/.npm /root/.cache /root/.node-gyp; \
115
+ # 4) The underpost global env store may hold GITHUB_TOKEN.
116
+ rm -f "$(underpost root)/underpost/.env" 2>/dev/null || true; \
117
+ # 5) Build caches, temp, and build-only toolchains. hardhat is contract
118
+ # build/CLI tooling (used only to build the coverage docs above); the
119
+ # runtime server never imports it, so its dev node_modules is pure bloat.
120
+ npm cache clean --force 2>/dev/null || true; \
121
+ rm -rf /home/dd/engine/src/client/public/itemledger \
122
+ rm -rf /home/dd/engine/src/client/public/cryptokoyn \
123
+ rm -rf /home/dd/engine/src/client/components/cryptokoyn \
124
+ rm -rf /home/dd/engine/src/client/components/itemledger \
125
+ rm -rf /home/dd/engine/src/client/Itemledger.index.js \
126
+ rm -rf /home/dd/engine/src/client/Cryptokoyn.index.js \
127
+ rm -rf /home/dd/engine/hardhat/node_modules \
128
+ /home/dd/engine/.npm /tmp/* /var/tmp/* /var/cache/dnf
129
+
130
+ # ---------------------------------------------------------------------------
131
+ # Stage 2 — runtime: clean base + pinned Node toolchain + scrubbed app tree.
132
+ # ---------------------------------------------------------------------------
133
+ FROM rockylinux/rockylinux:9 AS runtime
134
+ ENV NODE_ENV=development
135
+
136
+ # Node + npm + the underpost CLI (exact pinned version) from the builder — no
137
+ # re-download, no git/build toolchain. libstdc++ is the only runtime lib the
138
+ # prebuilt Node binary needs beyond the base image.
139
+ COPY --from=builder /usr/local/ /usr/local/
140
+ RUN dnf install -y libstdc++ git sudo && dnf clean all && rm -rf /var/cache/dnf && \
141
+ useradd --create-home --home-dir /home/dd --shell /usr/sbin/nologin dd && \
142
+ # The runtime runs as `dd`, but `underpost start --build` shells out to `sudo cp`/`sudo rm`
143
+ # (src/server/start.js). Grant passwordless sudo so those succeed without a TTY/password.
144
+ printf 'dd ALL=(ALL) NOPASSWD:ALL\n' > /etc/sudoers.d/dd && chmod 0440 /etc/sudoers.d/dd && \
145
+ # underpost persists its global env at $(npm root -g)/underpost/.env; the
146
+ # non-root runtime user must be able to write it (fixes EACCES on start).
147
+ chown -R dd:dd /usr/local/lib/node_modules/underpost
148
+
149
+ # Copy ONLY the scrubbed runtime tree — no .git, no token, no caches.
150
+ COPY --from=builder --chown=dd:dd /home/dd/engine /home/dd/engine
151
+
152
+ RUN chmod +x /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh && \
153
+ /home/dd/engine/scripts/rpmfusion-ffmpeg-setup.sh
154
+
155
+ # Explicit re-chown: PVC-backed mounts under src/client/public land here at
156
+ # pod start and may override the COPY --chown above with root ownership.
157
+ RUN chown -R dd:dd /home/dd/engine/src/client/public
158
+
159
+ USER dd
160
+ WORKDIR /home/dd/engine
161
+
162
+ EXPOSE 4005
163
+ EXPOSE 50051
164
+
165
+ CMD ["/bin/sh", "-c", "underpost start --run dd-cyberia development"]
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 DOGMADUAL.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.