cyberia 2.99.8 → 3.0.2

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 (81) hide show
  1. package/.env.production +1 -0
  2. package/.github/workflows/engine-cyberia.cd.yml +1 -0
  3. package/.github/workflows/gitlab.ci.yml +20 -0
  4. package/.github/workflows/publish.ci.yml +18 -38
  5. package/.github/workflows/publish.cyberia.ci.yml +18 -38
  6. package/.vscode/extensions.json +8 -50
  7. package/.vscode/settings.json +0 -77
  8. package/CHANGELOG.md +171 -1
  9. package/{cli.md → CLI-HELP.md} +49 -44
  10. package/README.md +139 -0
  11. package/bin/build.js +7 -15
  12. package/bin/cyberia.js +385 -71
  13. package/bin/deploy.js +14 -151
  14. package/bin/file.js +13 -8
  15. package/bin/index.js +385 -71
  16. package/bin/zed.js +63 -2
  17. package/conf.js +32 -3
  18. package/deployment.yaml +2 -2
  19. package/jsdoc.json +1 -2
  20. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
  21. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
  22. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  23. package/manifests/deployment/dd-test-development/deployment.yaml +2 -2
  24. package/manifests/deployment/fastapi/initial_data.sh +4 -52
  25. package/manifests/ipfs/configmap.yaml +64 -0
  26. package/manifests/ipfs/headless-service.yaml +35 -0
  27. package/manifests/ipfs/kustomization.yaml +8 -0
  28. package/manifests/ipfs/statefulset.yaml +149 -0
  29. package/manifests/ipfs/storage-class.yaml +9 -0
  30. package/package.json +15 -11
  31. package/scripts/k3s-node-setup.sh +89 -0
  32. package/scripts/lxd-vm-setup.sh +23 -0
  33. package/scripts/rocky-setup.sh +1 -13
  34. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.controller.js +2 -0
  35. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.model.js +7 -0
  36. package/src/api/atlas-sprite-sheet/atlas-sprite-sheet.service.js +93 -2
  37. package/src/api/file/file.controller.js +3 -13
  38. package/src/api/file/file.ref.json +0 -21
  39. package/src/api/ipfs/ipfs.controller.js +104 -0
  40. package/src/api/ipfs/ipfs.model.js +71 -0
  41. package/src/api/ipfs/ipfs.router.js +31 -0
  42. package/src/api/ipfs/ipfs.service.js +193 -0
  43. package/src/api/object-layer/README.md +139 -0
  44. package/src/api/object-layer/object-layer.controller.js +3 -0
  45. package/src/api/object-layer/object-layer.model.js +15 -1
  46. package/src/api/object-layer/object-layer.router.js +6 -10
  47. package/src/api/object-layer/object-layer.service.js +311 -182
  48. package/src/api/user/user.router.js +0 -47
  49. package/src/cli/baremetal.js +7 -9
  50. package/src/cli/cluster.js +95 -152
  51. package/src/cli/deploy.js +8 -5
  52. package/src/cli/index.js +31 -31
  53. package/src/cli/ipfs.js +184 -0
  54. package/src/cli/lxd.js +192 -237
  55. package/src/cli/repository.js +4 -1
  56. package/src/cli/run.js +17 -2
  57. package/src/client/components/core/Docs.js +92 -6
  58. package/src/client/components/core/LoadingAnimation.js +2 -3
  59. package/src/client/components/core/Modal.js +1 -1
  60. package/src/client/components/core/VanillaJs.js +36 -25
  61. package/src/client/components/cyberia/ObjectLayerEngineModal.js +4 -5
  62. package/src/client/components/cyberia/ObjectLayerEngineViewer.js +280 -29
  63. package/src/client/services/ipfs/ipfs.service.js +144 -0
  64. package/src/client/services/object-layer/object-layer.management.js +161 -8
  65. package/src/client/services/user/user.management.js +0 -5
  66. package/src/client/services/user/user.service.js +1 -1
  67. package/src/index.js +12 -1
  68. package/src/runtime/express/Express.js +4 -3
  69. package/src/server/auth.js +18 -18
  70. package/src/server/client-build-docs.js +178 -41
  71. package/src/server/conf.js +1 -1
  72. package/src/server/ipfs-client.js +433 -0
  73. package/src/server/logger.js +22 -10
  74. package/src/server/object-layer.js +649 -18
  75. package/src/server/semantic-layer-generator.js +1083 -0
  76. package/src/server/shape-generator.js +952 -0
  77. package/test/shape-generator.test.js +457 -0
  78. package/.vscode/zed.keymap.json +0 -39
  79. package/.vscode/zed.settings.json +0 -20
  80. package/bin/ssl.js +0 -63
  81. package/manifests/lxd/underpost-setup.sh +0 -163
package/bin/deploy.js CHANGED
@@ -374,7 +374,9 @@ try {
374
374
  shellExec(`node bin run kill 4002`);
375
375
  shellExec(`node bin run kill 4003`);
376
376
  shellExec(`npm run update-template`);
377
- shellExec(`cd ../pwa-microservices-template && npm install`);
377
+ shellExec(
378
+ `cd ../pwa-microservices-template && npm install && echo "\nENABLE_FILE_LOGS=true" >> .env.development`,
379
+ );
378
380
  shellExec(`cd ../pwa-microservices-template && npm run build && timeout 5s npm run dev`, {
379
381
  async: true,
380
382
  });
@@ -509,33 +511,23 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
509
511
  // https://besu.hyperledger.org/
510
512
  // https://github.com/hyperledger/besu/archive/refs/tags/24.9.1.tar.gz
511
513
 
512
- switch (process.platform) {
513
- case 'linux':
514
- {
515
- shellCd(`..`);
516
-
517
- // Download the Linux binary
518
- shellExec(`wget https://github.com/hyperledger/besu/releases/download/24.9.1/besu-24.9.1.tar.gz`);
519
-
520
- // Unzip the file:
521
- shellExec(`tar -xvzf besu-24.9.1.tar.gz`);
514
+ shellCd(`..`);
522
515
 
523
- shellCd(`besu-24.9.1`);
516
+ // Download the Linux binary
517
+ shellExec(`wget https://github.com/hyperledger/besu/releases/download/24.9.1/besu-24.9.1.tar.gz`);
524
518
 
525
- shellExec(`bin/besu --help`);
519
+ // Unzip the file:
520
+ shellExec(`tar -xvzf besu-24.9.1.tar.gz`);
526
521
 
527
- // Set env path
528
- // export PATH=$PATH:/home/dd/besu-24.9.1/bin
522
+ shellCd(`besu-24.9.1`);
529
523
 
530
- // Open src
531
- // shellExec(`sudo code /home/dd/besu-24.9.1 --user-data-dir="/root/.vscode-root" --no-sandbox`);
532
- }
524
+ shellExec(`bin/besu --help`);
533
525
 
534
- break;
526
+ // Set env path
527
+ // export PATH=$PATH:/home/dd/besu-24.9.1/bin
535
528
 
536
- default:
537
- break;
538
- }
529
+ // Open src
530
+ // shellExec(`sudo code /home/dd/besu-24.9.1 --user-data-dir="/root/.vscode-root" --no-sandbox`);
539
531
 
540
532
  break;
541
533
  }
@@ -568,42 +560,6 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
568
560
  break;
569
561
  }
570
562
 
571
- case 'postgresql': {
572
- if (process.argv.includes('install')) {
573
- shellExec(`sudo dnf install -y postgresql-server postgresql`);
574
- shellExec(`sudo postgresql-setup --initdb`);
575
- shellExec(`chown postgres /var/lib/pgsql/data`);
576
- shellExec(`sudo systemctl enable postgresql.service`);
577
- shellExec(`sudo systemctl start postgresql.service`);
578
- } else {
579
- shellExec(`sudo systemctl enable postgresql.service`);
580
- shellExec(`sudo systemctl restart postgresql.service`);
581
- }
582
-
583
- shellExec(`sudo systemctl status postgresql.service`);
584
-
585
- // sudo systemctl stop postgresql
586
- // sudo systemctl disable postgresql
587
-
588
- // psql login
589
- // psql -U <user> -h 127.0.0.1 -W <db-name>
590
-
591
- // gedit /var/lib/pgsql/data/pg_hba.conf
592
- // host <db-name> <db-user> <db-host> md5
593
- // local all postgres trust
594
- // # "local" is for Unix domain socket connections only
595
- // local all all md5
596
- // # IPv4 local connections:
597
- // host all all 127.0.0.1/32 md5
598
- // # IPv6 local connections:
599
- // host all all ::1/128 md5
600
-
601
- // gedit /var/lib/pgsql/data/postgresql.conf
602
- // listen_addresses = '*'
603
-
604
- break;
605
- }
606
-
607
563
  case 'postgresql-17': {
608
564
  if (process.argv.includes('install')) {
609
565
  shellExec(`sudo dnf module reset postgresql -y`);
@@ -635,46 +591,6 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
635
591
  break;
636
592
  }
637
593
 
638
- case 'postgresql-14': {
639
- if (process.argv.includes('install')) {
640
- shellExec(`sudo dnf module reset postgresql -y`);
641
- shellExec(`sudo dnf -qy module disable postgresql`);
642
-
643
- shellExec(`sudo systemctl stop postgresql-14`);
644
- shellExec(`sudo systemctl disable postgresql-14`);
645
-
646
- shellExec(`sudo dnf remove -y postgresql14 postgresql14-server postgresql14-contrib`);
647
- shellExec(`sudo rm -rf /var/lib/pgsql`);
648
-
649
- shellExec(`sudo dnf install postgresql14 postgresql14-server postgresql14-contrib -y`);
650
- }
651
- if (process.argv.includes('uninstall')) {
652
- shellExec(`sudo systemctl stop postgresql-14`);
653
- shellExec(`sudo systemctl disable postgresql-14`);
654
- shellExec(`sudo dnf remove -y postgresql14 postgresql14-server postgresql14-contrib`);
655
- shellExec(`sudo rm -rf /var/lib/pgsql /var/log/pgsql /etc/postgresql`);
656
- } else {
657
- shellExec(`sudo /usr/pgsql-14/bin/postgresql-14-setup initdb`);
658
- shellExec(`sudo systemctl start postgresql-14`);
659
- shellExec(`sudo systemctl enable postgresql-14`);
660
- shellExec(`sudo systemctl status postgresql-14`);
661
- // sudo dnf install postgresql14-contrib
662
- }
663
-
664
- break;
665
- }
666
-
667
- case 'pg-stop': {
668
- shellExec(`sudo systemctl stop postgresql-14`);
669
- shellExec(`sudo systemctl disable postgresql-14`);
670
- break;
671
- }
672
- case 'pg-start': {
673
- shellExec(`sudo systemctl enable postgresql-14`);
674
- shellExec(`sudo systemctl restart postgresql-14`);
675
- break;
676
- }
677
-
678
594
  case 'pg-list-db': {
679
595
  shellExec(`sudo -i -u postgres psql -c "\\l"`);
680
596
  break;
@@ -696,36 +612,6 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
696
612
  break;
697
613
  }
698
614
 
699
- case 'mount': {
700
- const mounts = shellExec(`mount`).split(`\n`);
701
- console.table(
702
- mounts
703
- .filter((l) => l.trim())
704
- .map(
705
- (o) => (
706
- (o = o.split(' ')),
707
- {
708
- path: o[2],
709
- type: o[4],
710
- permissions: o[5],
711
- }
712
- ),
713
- ),
714
- );
715
- break;
716
- }
717
-
718
- case 'create-ports': {
719
- const cmd = [];
720
- const commissioningDeviceIp = Underpost.dns.getLocalIPv4Address();
721
- for (const port of ['5240']) {
722
- const name = 'maas';
723
- cmd.push(`${name}:${port}-${port}:${commissioningDeviceIp}`);
724
- }
725
- pbcopy(`node engine-private/r create-port ${cmd}`);
726
- break;
727
- }
728
-
729
615
  case 'fastapi-models': {
730
616
  shellExec(`chmod +x ../full-stack-fastapi-template/backend/initial_data.sh`);
731
617
  shellExec(`../full-stack-fastapi-template/backend/initial_data.sh`);
@@ -987,22 +873,6 @@ nvidia/gpu-operator \
987
873
  break;
988
874
  }
989
875
 
990
- case 'update-static-guide': {
991
- fs.writeFileSync(
992
- `src/client/public/nexodev/docs/references/Static Site Generator Quick Reference.md`,
993
- fs.readFileSync(`examples/static-page/QUICK-REFERENCE.md`, 'utf8'),
994
- );
995
- fs.writeFileSync(
996
- `src/client/public/nexodev/docs/references/Static Site Generator Examples.md`,
997
- fs.readFileSync(`examples/static-page/README.md`, 'utf8'),
998
- );
999
- fs.writeFileSync(
1000
- `src/client/public/nexodev/docs/references/Static Generator Guide.md`,
1001
- fs.readFileSync(`examples/static-page/STATIC-GENERATOR-GUIDE.md`, 'utf8'),
1002
- );
1003
- break;
1004
- }
1005
-
1006
876
  case 'udpate-version-files': {
1007
877
  const oldNpmVersion = process.argv[3];
1008
878
  const oldNodeVersion = process.argv[4];
@@ -1018,13 +888,6 @@ nvidia/gpu-operator \
1018
888
  .replaceAll(oldNodeVersion, nodeVersion)
1019
889
  .replaceAll(oldNpmVersion, npmVersion),
1020
890
  );
1021
- fs.writeFileSync(
1022
- `manifests/lxd/underpost-setup.sh`,
1023
- fs
1024
- .readFileSync(`manifests/lxd/underpost-setup.sh`, 'utf8')
1025
- .replaceAll(oldNodeVersion, nodeVersion)
1026
- .replaceAll(oldNpmVersion, npmVersion),
1027
- );
1028
891
  fs.writeFileSync(
1029
892
  `src/client/public/nexodev/docs/references/Getting started.md`,
1030
893
  fs
package/bin/file.js CHANGED
@@ -22,26 +22,22 @@ logger.info('argv', process.argv);
22
22
  let [exe, dir, type] = process.argv;
23
23
  let rawPath = process.argv[3].replaceAll(`'`, '');
24
24
  let toPath = process.argv[4].replaceAll(`'`, '');
25
-
26
25
  let path = `${rawPath}`.split('/');
27
26
  path.pop();
28
27
  path = path.join('/');
29
-
30
28
  const file = `${rawPath}`.split('/').pop();
31
29
  const ext = file.split('.')[1];
32
30
  let name = getCapVariableName(file.split('.')[0]);
31
+ let content = '';
33
32
 
34
33
  logger.info('File metadata', { path, file, ext, name });
35
34
 
36
35
  try {
37
- let content = '';
38
36
  switch (type) {
39
37
  case 'update-template':
40
38
  case 'copy-src':
41
39
  console.log({ rawPath, toPath });
42
40
 
43
- // this function returns a promise, but you can also pass a cb
44
- // if you like that approach better.
45
41
  let result = await new Promise((resolve) =>
46
42
  walk(
47
43
  {
@@ -90,7 +86,7 @@ try {
90
86
  // fs.copySync(`./.github`, `../pwa-microservices-template/.github`);
91
87
  fs.copySync(`./src/client/public/default`, `../pwa-microservices-template/src/client/public/default`);
92
88
 
93
- for (const checkoutPath of ['README.md', 'package-lock.json', 'package.json'])
89
+ for (const checkoutPath of ['README.md', 'package.json'])
94
90
  shellExec(`cd ../pwa-microservices-template && git checkout ${checkoutPath}`);
95
91
 
96
92
  for (const deletePath of [
@@ -101,6 +97,9 @@ try {
101
97
  './manifests/deployment/dd-template-development',
102
98
  './src/server/object-layer.js',
103
99
  './src/server/atlas-sprite-sheet-generator.js',
100
+ './src/server/shape-generator.js',
101
+ './src/server/semantic-layer-generator.js',
102
+ './test/shape-generator.test.js',
104
103
  'bin/cyberia.js',
105
104
  ]) {
106
105
  if (fs.existsSync(deletePath)) fs.removeSync('../pwa-microservices-template/' + deletePath);
@@ -114,6 +113,7 @@ try {
114
113
  `./.github/workflows/pwa-microservices-template-test.ci.yml`,
115
114
  `./.github/workflows/npmpkg.ci.yml`,
116
115
  `./.github/workflows/ghpkg.ci.yml`,
116
+ `./.github/workflows/gitlab.ci.yml`,
117
117
  `./.github/workflows/publish.ci.yml`,
118
118
  `./.github/workflows/release.cd.yml`,
119
119
  './src/ws/IoInterface.js',
@@ -133,6 +133,7 @@ try {
133
133
  templatePackageJson.devDependencies = originPackageJson.devDependencies;
134
134
  templatePackageJson.version = originPackageJson.version;
135
135
  templatePackageJson.scripts = originPackageJson.scripts;
136
+ templatePackageJson.overrides = originPackageJson.overrides;
136
137
  templatePackageJson.name = name;
137
138
  templatePackageJson.description = description;
138
139
  // templatePackageJson.scripts.dev = dev;
@@ -146,15 +147,17 @@ try {
146
147
  JSON.stringify(templatePackageJson, null, 4),
147
148
  'utf8',
148
149
  );
149
-
150
150
  const originPackageLockJson = JSON.parse(fs.readFileSync('./package-lock.json', 'utf8'));
151
+
151
152
  const templatePackageLockJson = JSON.parse(
152
153
  fs.readFileSync('../pwa-microservices-template/package-lock.json', 'utf8'),
153
154
  );
155
+
154
156
  const originBasePackageLock = newInstance(templatePackageLockJson.packages['']);
157
+ templatePackageLockJson.name = name;
155
158
  templatePackageLockJson.version = originPackageLockJson.version;
156
159
  templatePackageLockJson.packages = originPackageLockJson.packages;
157
- templatePackageLockJson.packages[''].name = originBasePackageLock.name;
160
+ templatePackageLockJson.packages[''].name = name;
158
161
  templatePackageLockJson.packages[''].version = originPackageLockJson.version;
159
162
  templatePackageLockJson.packages[''].hasInstallScript = originBasePackageLock.hasInstallScript;
160
163
  templatePackageLockJson.packages[''].license = originBasePackageLock.license;
@@ -163,6 +166,8 @@ try {
163
166
  JSON.stringify(templatePackageLockJson, null, 4),
164
167
  'utf8',
165
168
  );
169
+ // Regenerate package-lock.json to match the modified package.json
170
+ // shellExec(`cd ../pwa-microservices-template && npm install --package-lock-only --ignore-scripts`);
166
171
  fs.writeFileSync(
167
172
  '../pwa-microservices-template/README.md',
168
173
  fs