underpost 2.8.86 → 2.8.88

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 (116) hide show
  1. package/.env.development +39 -2
  2. package/.env.production +42 -2
  3. package/.env.test +39 -2
  4. package/.github/workflows/ghpkg.ci.yml +1 -1
  5. package/.github/workflows/npmpkg.ci.yml +1 -1
  6. package/.github/workflows/pwa-microservices-template-page.cd.yml +6 -5
  7. package/.github/workflows/pwa-microservices-template-test.ci.yml +1 -1
  8. package/.github/workflows/release.cd.yml +3 -3
  9. package/README.md +76 -2
  10. package/bin/build.js +5 -0
  11. package/bin/deploy.js +93 -27
  12. package/bin/file.js +8 -4
  13. package/bin/util.js +1 -56
  14. package/cli.md +16 -5
  15. package/conf.js +33 -7
  16. package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
  17. package/manifests/deployment/dd-test-development/deployment.yaml +174 -0
  18. package/manifests/deployment/dd-test-development/proxy.yaml +51 -0
  19. package/manifests/deployment/mongo-express/deployment.yaml +12 -12
  20. package/manifests/maas/nvim.sh +91 -0
  21. package/package.json +8 -15
  22. package/src/api/core/core.router.js +2 -1
  23. package/src/api/default/default.controller.js +6 -1
  24. package/src/api/default/default.router.js +6 -2
  25. package/src/api/default/default.service.js +10 -1
  26. package/src/api/document/document.controller.js +66 -0
  27. package/src/api/document/document.model.js +51 -0
  28. package/src/api/document/document.router.js +24 -0
  29. package/src/api/document/document.service.js +125 -0
  30. package/src/api/file/file.controller.js +15 -1
  31. package/src/api/file/file.router.js +2 -1
  32. package/src/api/file/file.service.js +28 -8
  33. package/src/api/test/test.router.js +1 -1
  34. package/src/api/user/postman_collection.json +216 -0
  35. package/src/api/user/user.controller.js +25 -60
  36. package/src/api/user/user.model.js +29 -7
  37. package/src/api/user/user.router.js +40 -8
  38. package/src/api/user/user.service.js +86 -35
  39. package/src/cli/baremetal.js +33 -3
  40. package/src/cli/cloud-init.js +11 -0
  41. package/src/cli/cluster.js +4 -23
  42. package/src/cli/cron.js +0 -1
  43. package/src/cli/db.js +0 -19
  44. package/src/cli/deploy.js +67 -52
  45. package/src/cli/fs.js +1 -0
  46. package/src/cli/index.js +9 -1
  47. package/src/cli/lxd.js +7 -0
  48. package/src/cli/repository.js +44 -6
  49. package/src/cli/run.js +56 -9
  50. package/src/cli/ssh.js +20 -6
  51. package/src/client/Default.index.js +42 -1
  52. package/src/client/components/core/Account.js +10 -2
  53. package/src/client/components/core/AgGrid.js +30 -8
  54. package/src/client/components/core/Auth.js +99 -56
  55. package/src/client/components/core/BtnIcon.js +3 -2
  56. package/src/client/components/core/CalendarCore.js +2 -3
  57. package/src/client/components/core/CommonJs.js +1 -2
  58. package/src/client/components/core/Content.js +15 -12
  59. package/src/client/components/core/Css.js +2 -1
  60. package/src/client/components/core/CssCore.js +18 -1
  61. package/src/client/components/core/Docs.js +5 -5
  62. package/src/client/components/core/FileExplorer.js +3 -3
  63. package/src/client/components/core/FullScreen.js +19 -28
  64. package/src/client/components/core/Input.js +22 -16
  65. package/src/client/components/core/JoyStick.js +2 -2
  66. package/src/client/components/core/LoadingAnimation.js +2 -2
  67. package/src/client/components/core/LogIn.js +16 -23
  68. package/src/client/components/core/LogOut.js +5 -1
  69. package/src/client/components/core/Logger.js +4 -1
  70. package/src/client/components/core/Modal.js +102 -87
  71. package/src/client/components/core/ObjectLayerEngine.js +229 -4
  72. package/src/client/components/core/ObjectLayerEngineModal.js +442 -0
  73. package/src/client/components/core/Pagination.js +207 -0
  74. package/src/client/components/core/Panel.js +10 -10
  75. package/src/client/components/core/PanelForm.js +130 -33
  76. package/src/client/components/core/Recover.js +2 -2
  77. package/src/client/components/core/Router.js +210 -34
  78. package/src/client/components/core/SignUp.js +1 -2
  79. package/src/client/components/core/Stream.js +1 -1
  80. package/src/client/components/core/ToggleSwitch.js +15 -1
  81. package/src/client/components/core/VanillaJs.js +3 -84
  82. package/src/client/components/core/Worker.js +2 -2
  83. package/src/client/components/default/LogInDefault.js +0 -6
  84. package/src/client/components/default/LogOutDefault.js +0 -16
  85. package/src/client/components/default/MenuDefault.js +97 -44
  86. package/src/client/components/default/RoutesDefault.js +5 -2
  87. package/src/client/public/default/assets/mailer/api-user-default-avatar.png +0 -0
  88. package/src/client/services/core/core.service.js +8 -20
  89. package/src/client/services/default/default.management.js +115 -18
  90. package/src/client/services/default/default.service.js +13 -4
  91. package/src/client/services/document/document.service.js +97 -0
  92. package/src/client/services/file/file.service.js +2 -0
  93. package/src/client/services/test/test.service.js +3 -0
  94. package/src/client/services/user/user.management.js +6 -0
  95. package/src/client/services/user/user.service.js +15 -4
  96. package/src/client/ssr/Render.js +1 -1
  97. package/src/client/ssr/head/DefaultScripts.js +3 -0
  98. package/src/client/ssr/head/Seo.js +1 -0
  99. package/src/index.js +24 -2
  100. package/src/runtime/lampp/Lampp.js +89 -2
  101. package/src/runtime/xampp/Xampp.js +48 -1
  102. package/src/server/auth.js +519 -155
  103. package/src/server/backup.js +2 -2
  104. package/src/server/client-build-docs.js +1 -1
  105. package/src/server/client-build.js +4 -12
  106. package/src/server/client-icons.js +6 -78
  107. package/src/server/conf.js +144 -141
  108. package/src/server/process.js +2 -1
  109. package/src/server/proxy.js +1 -1
  110. package/src/server/runtime.js +136 -288
  111. package/src/server/ssl.js +1 -2
  112. package/src/server/ssr.js +85 -0
  113. package/src/server/start.js +4 -4
  114. package/src/server/valkey.js +2 -1
  115. package/test/api.test.js +3 -2
  116. package/bin/cyberia0.js +0 -78
package/.env.development CHANGED
@@ -2,6 +2,43 @@ DEPLOY_ID=dd-default
2
2
  NODE_ENV=development
3
3
  PORT=4000
4
4
  JWT_SECRET=test
5
- EXPIRE=168
5
+ REFRESH_EXPIRE_MINUTES=5
6
+ ACCESS_EXPIRE_MINUTES=1440
6
7
  NODE_OPTIONS=--max-old-space-size=8192
7
- BASE_API=api
8
+ TIME_ZONE=changethis
9
+ GITHUB_TOKEN=changethis
10
+ GITHUB_USERNAME=changethis
11
+ GITHUB_BACKUP_REPO=changethis
12
+ GITHUB_DNS_REPO=changethis
13
+ DEFAULT_DEPLOY_ID=dd-default
14
+ DEFAULT_DEPLOY_HOST=default.net
15
+ DEFAULT_DEPLOY_PATH=/
16
+ MARIADB_HOST=changethis
17
+ MARIADB_USER=changethis
18
+ MARIADB_PASSWORD=changethis
19
+ DD_LAMPP_TEST_DB_0=changethis
20
+ WIFI=changethis
21
+ ROUTER=changethis
22
+ CLOUDINARY_CLOUD_NAME=changethis
23
+ CLOUDINARY_API_KEY=changethis
24
+ CLOUDINARY_API_SECRET=changethis
25
+ DB_PG_MAAS_NAME=changethis
26
+ DB_PG_MAAS_PASS=changethis
27
+ DB_PG_MAAS_USER=changethis
28
+ DB_PG_MAAS_HOST=127.0.0.1
29
+ DB_PG_MAAS_PORT=5432
30
+ MAAS_ADMIN_USERNAME=changethis
31
+ MAAS_API_KEY=changethis
32
+ MAAS_ADMIN_EMAIL=admin@default.net
33
+ MAAS_ADMIN_PASS=changethis
34
+ TFTP_ROOT=changethis
35
+ NETMASK=255.255.255.0
36
+ RPI4_INTERFACE_NAME=changethis
37
+ RPI4_IP=192.168.1.192
38
+ MAAS_DNS=8.8.8.8
39
+ MAAS_NTP_SERVER=changethis
40
+ NFS_EXPORT_PATH=changethis
41
+ RPI4_MAC_ADDRESS=changethis
42
+ NVIDIA_API_KEY=changethis
43
+ DEFAULT_ADMIN_EMAIL=admin@default.net
44
+ DEFAULT_ADMIN_PASSWORD=changethis
package/.env.production CHANGED
@@ -2,6 +2,46 @@ DEPLOY_ID=dd-default
2
2
  NODE_ENV=production
3
3
  PORT=3000
4
4
  JWT_SECRET=test
5
- EXPIRE=168
5
+ REFRESH_EXPIRE_MINUTES=5
6
+ ACCESS_EXPIRE_MINUTES=1440
6
7
  NODE_OPTIONS=--max-old-space-size=8192
7
- BASE_API=api
8
+ TIME_ZONE=changethis
9
+ GITHUB_TOKEN=changethis
10
+ GITHUB_USERNAME=changethis
11
+ GITHUB_BACKUP_REPO=changethis
12
+ GITHUB_DNS_REPO=changethis
13
+ DEFAULT_DEPLOY_ID=dd-default
14
+ DEFAULT_DEPLOY_HOST=default.net
15
+ DEFAULT_DEPLOY_PATH=/
16
+ MARIADB_HOST=changethis
17
+ MARIADB_USER=changethis
18
+ MARIADB_PASSWORD=changethis
19
+ DD_LAMPP_TEST_DB_0=changethis
20
+ WIFI=changethis
21
+ ROUTER=changethis
22
+ CLOUDINARY_CLOUD_NAME=changethis
23
+ CLOUDINARY_API_KEY=changethis
24
+ CLOUDINARY_API_SECRET=changethis
25
+ DB_PG_MAAS_NAME=changethis
26
+ DB_PG_MAAS_PASS=changethis
27
+ DB_PG_MAAS_USER=changethis
28
+ DB_PG_MAAS_HOST=127.0.0.1
29
+ DB_PG_MAAS_PORT=5432
30
+ MAAS_ADMIN_USERNAME=changethis
31
+ MAAS_API_KEY=changethis
32
+ MAAS_ADMIN_EMAIL=admin@default.net
33
+ MAAS_ADMIN_PASS=changethis
34
+ TFTP_ROOT=changethis
35
+ NETMASK=255.255.255.0
36
+ RPI4_INTERFACE_NAME=changethis
37
+ RPI4_IP=192.168.1.192
38
+ MAAS_DNS=8.8.8.8
39
+ MAAS_NTP_SERVER=changethis
40
+ NFS_EXPORT_PATH=changethis
41
+ RPI4_MAC_ADDRESS=changethis
42
+ NVIDIA_API_KEY=changethis
43
+ DEFAULT_ADMIN_EMAIL=admin@default.net
44
+ DEFAULT_ADMIN_PASSWORD=changethis
45
+ DEFAULT_SSH_USER=changethis
46
+ DEFAULT_SSH_HOST=changethis
47
+ DEFAULT_SSH_KEY_PATH=changethis
package/.env.test CHANGED
@@ -2,6 +2,43 @@ DEPLOY_ID=dd-default
2
2
  NODE_ENV=test
3
3
  PORT=5000
4
4
  JWT_SECRET=test
5
- EXPIRE=168
5
+ REFRESH_EXPIRE_MINUTES=5
6
+ ACCESS_EXPIRE_MINUTES=1440
6
7
  NODE_OPTIONS=--max-old-space-size=8192
7
- BASE_API=api
8
+ TIME_ZONE=changethis
9
+ GITHUB_TOKEN=changethis
10
+ GITHUB_USERNAME=changethis
11
+ GITHUB_BACKUP_REPO=changethis
12
+ GITHUB_DNS_REPO=changethis
13
+ DEFAULT_DEPLOY_ID=dd-default
14
+ DEFAULT_DEPLOY_HOST=default.net
15
+ DEFAULT_DEPLOY_PATH=/
16
+ MARIADB_HOST=changethis
17
+ MARIADB_USER=changethis
18
+ MARIADB_PASSWORD=changethis
19
+ DD_LAMPP_TEST_DB_0=changethis
20
+ WIFI=changethis
21
+ ROUTER=changethis
22
+ CLOUDINARY_CLOUD_NAME=changethis
23
+ CLOUDINARY_API_KEY=changethis
24
+ CLOUDINARY_API_SECRET=changethis
25
+ DB_PG_MAAS_NAME=changethis
26
+ DB_PG_MAAS_PASS=changethis
27
+ DB_PG_MAAS_USER=changethis
28
+ DB_PG_MAAS_HOST=127.0.0.1
29
+ DB_PG_MAAS_PORT=5432
30
+ MAAS_ADMIN_USERNAME=changethis
31
+ MAAS_API_KEY=changethis
32
+ MAAS_ADMIN_EMAIL=admin@default.net
33
+ MAAS_ADMIN_PASS=changethis
34
+ TFTP_ROOT=changethis
35
+ NETMASK=255.255.255.0
36
+ RPI4_INTERFACE_NAME=changethis
37
+ RPI4_IP=192.168.1.192
38
+ MAAS_DNS=8.8.8.8
39
+ MAAS_NTP_SERVER=changethis
40
+ NFS_EXPORT_PATH=changethis
41
+ RPI4_MAC_ADDRESS=changethis
42
+ NVIDIA_API_KEY=changethis
43
+ DEFAULT_ADMIN_EMAIL=admin@default.net
44
+ DEFAULT_ADMIN_PASSWORD=changethis
@@ -14,7 +14,7 @@ jobs:
14
14
  name: Update github repo package Jobs
15
15
  runs-on: ubuntu-latest
16
16
  container:
17
- image: rockylinux/rockylinux:9
17
+ image: quay.io/rockylinux/rockylinux:9
18
18
  permissions:
19
19
  contents: write
20
20
  packages: write
@@ -14,7 +14,7 @@ jobs:
14
14
  name: Update npm repo package Jobs
15
15
  runs-on: ubuntu-latest
16
16
  container:
17
- image: rockylinux/rockylinux:9
17
+ image: quay.io/rockylinux/rockylinux:9
18
18
  permissions:
19
19
  contents: write
20
20
  packages: write
@@ -4,7 +4,7 @@ name: CD | Gihub page | PWA Microservices Template
4
4
  on:
5
5
  # Runs on pushes targeting the default branch
6
6
  push:
7
- branches: ['main']
7
+ branches: ["main"]
8
8
 
9
9
  # Allows you to run this workflow manually from the Actions tab
10
10
  workflow_dispatch:
@@ -18,7 +18,7 @@ permissions:
18
18
  # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19
19
  # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20
20
  concurrency:
21
- group: 'pages'
21
+ group: "pages"
22
22
  cancel-in-progress: false
23
23
 
24
24
  jobs:
@@ -30,7 +30,7 @@ jobs:
30
30
  url: ${{ steps.deployment.outputs.page_url }}
31
31
  runs-on: ubuntu-latest
32
32
  container:
33
- image: rockylinux/rockylinux:9
33
+ image: quay.io/rockylinux/rockylinux:9
34
34
  steps:
35
35
  - name: Checkout
36
36
  uses: actions/checkout@v4
@@ -53,7 +53,8 @@ jobs:
53
53
  run: |
54
54
  npm install -g underpost
55
55
  npm install
56
- node bin/deploy update-default-conf ghpkg
56
+ node bin/deploy update-default-conf dd-github-pages
57
+ underpost env dd-github-pages production
57
58
  env-cmd -f .env.production node bin/deploy build-full-client dd-github-pages underpostnet.github.io /pwa-microservices-template-ghpkg
58
59
  # git lfs install
59
60
  # git lfs track
@@ -65,7 +66,7 @@ jobs:
65
66
  uses: actions/upload-pages-artifact@v3
66
67
  with:
67
68
  # Upload entire repository
68
- path: './public/underpostnet.github.io/pwa-microservices-template-ghpkg/'
69
+ path: "./public/underpostnet.github.io/pwa-microservices-template-ghpkg/"
69
70
  - name: Deploy to GitHub Pages
70
71
  id: deployment
71
72
  uses: actions/deploy-pages@v4
@@ -7,7 +7,7 @@ jobs:
7
7
  name: Template Test
8
8
  runs-on: ubuntu-latest
9
9
  container:
10
- image: rockylinux/rockylinux:9
10
+ image: quay.io/rockylinux/rockylinux:9
11
11
  options: --entrypoint /bin/bash
12
12
  steps:
13
13
  - name: Clone repository
@@ -2,7 +2,7 @@ name: CD | Release deployment | remote ssh
2
2
 
3
3
  on:
4
4
  workflow_run:
5
- workflows: ['CI | Publish npm package']
5
+ workflows: ["CI | Publish npm package"]
6
6
  types:
7
7
  - completed
8
8
 
@@ -30,8 +30,8 @@ jobs:
30
30
  echo "Starting remote release deploy"
31
31
  cd /home/dd/engine
32
32
  npm install -g underpost
33
- underpost config set GITHUB_TOKEN ${{ secrets.GITHUB_TOKEN }}
33
+ underpost run secret
34
34
  node bin run --dev pull
35
35
  underpost run secret
36
36
  underpost run underpost-config
37
- underpost run release-deploy
37
+ underpost run ssh-deploy engine-test
package/README.md CHANGED
@@ -26,10 +26,47 @@
26
26
 
27
27
 
28
28
 
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
29
66
  <!-- badges -->
30
67
 
31
68
 
32
- [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/2.8.86)](https://socket.dev/npm/package/underpost/overview/2.8.86) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
69
+ [![Node.js CI](https://github.com/underpostnet/engine/actions/workflows/docker-image.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/docker-image.yml) [![Test](https://github.com/underpostnet/engine/actions/workflows/coverall.ci.yml/badge.svg?branch=master)](https://github.com/underpostnet/engine/actions/workflows/coverall.yml) [![Downloads](https://img.shields.io/npm/dm/underpost.svg)](https://www.npmjs.com/package/underpost) [![Socket Badge](https://socket.dev/api/badge/npm/package/underpost/2.8.88)](https://socket.dev/npm/package/underpost/overview/2.8.88) [![Coverage Status](https://coveralls.io/repos/github/underpostnet/engine/badge.svg?branch=master)](https://coveralls.io/github/underpostnet/engine?branch=master) [![Version](https://img.shields.io/npm/v/underpost.svg)](https://www.npmjs.org/package/underpost) [![License](https://img.shields.io/npm/l/underpost.svg)](https://www.npmjs.com/package/underpost)
33
70
 
34
71
 
35
72
  <!-- end-badges -->
@@ -44,6 +81,43 @@
44
81
 
45
82
 
46
83
 
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
47
121
  </div>
48
122
 
49
123
  <div align="center">
@@ -88,7 +162,7 @@ Run dev client server
88
162
  npm run dev
89
163
  ```
90
164
  <!-- -->
91
- ## underpost ci/cd cli v2.8.86
165
+ ## underpost ci/cd cli v2.8.88
92
166
 
93
167
  ### Usage: `underpost [options] [command]`
94
168
  ```
package/bin/build.js CHANGED
@@ -156,6 +156,7 @@ const { DefaultConf } = await import(`../conf.${confName}.js`);
156
156
  switch (confName) {
157
157
  case 'dd-cyberia':
158
158
  fs.copyFileSync(`./bin/cyberia.js`, `${basePath}/bin/cyberia.js`);
159
+ fs.copyFileSync(`./bin/cyberia.js`, `${basePath}/bin/cyberia0.js`);
159
160
  break;
160
161
 
161
162
  default:
@@ -190,6 +191,10 @@ const { DefaultConf } = await import(`../conf.${confName}.js`);
190
191
  fs.copyFileSync(`./.github/workflows/${repoName}.ci.yml`, `${basePath}/.github/workflows/${repoName}.ci.yml`);
191
192
  fs.copyFileSync(`./.github/workflows/${repoName}.cd.yml`, `${basePath}/.github/workflows/${repoName}.cd.yml`);
192
193
 
194
+ fs.copyFileSync(`./conf.${confName}.js`, `${basePath}/conf.js`);
195
+ fs.copyFileSync(`./manifests/deployment/${confName}-development/proxy.yaml`, `${basePath}/proxy.yaml`);
196
+ fs.copyFileSync(`./manifests/deployment/${confName}-development/deployment.yaml`, `${basePath}/deployment.yaml`);
197
+
193
198
  if (fs.existsSync(`./src/ws/${confName.split('-')[1]}`)) {
194
199
  fs.copySync(`./src/ws/${confName.split('-')[1]}`, `${basePath}/src/ws/${confName.split('-')[1]}`);
195
200
  }
package/bin/deploy.js CHANGED
@@ -28,6 +28,7 @@ import { DefaultConf } from '../conf.js';
28
28
  import colors from 'colors';
29
29
  import { program } from '../src/cli/index.js';
30
30
  import { getLocalIPv4Address, ip } from '../src/server/dns.js';
31
+ import { timer } from '../src/client/components/core/CommonJs.js';
31
32
 
32
33
  colors.enable();
33
34
 
@@ -39,19 +40,6 @@ const [exe, dir, operator] = process.argv;
39
40
 
40
41
  try {
41
42
  switch (operator) {
42
- case 'save':
43
- {
44
- let deployId = process.argv[3] ?? 'dd-default';
45
- if (!deployId.startsWith('dd-')) deployId = 'dd-default';
46
- const folder = `./engine-private/conf/${deployId}`;
47
- if (fs.existsSync(folder)) fs.removeSync(folder);
48
- await Config.build({ folder });
49
- fs.writeFileSync(`${folder}/.env.production`, fs.readFileSync('./.env.production', 'utf8'), 'utf8');
50
- fs.writeFileSync(`${folder}/.env.development`, fs.readFileSync('./.env.development', 'utf8'), 'utf8');
51
- fs.writeFileSync(`${folder}/.env.test`, fs.readFileSync('./.env.test', 'utf8'), 'utf8');
52
- fs.writeFileSync(`${folder}/package.json`, fs.readFileSync('./package.json', 'utf8'), 'utf8');
53
- }
54
- break;
55
43
  case 'add-nodejs-app-client-conf':
56
44
  {
57
45
  const toOptions = {
@@ -271,23 +259,20 @@ try {
271
259
  for (const deployIdObj of dataDeploy) {
272
260
  const { deployId, replicaHost } = deployIdObj;
273
261
  if (replicaHost && !singleReplicaHosts.includes(replicaHost)) singleReplicaHosts.push(replicaHost);
274
- const proxyInstance = deployId.match('proxy') || deployId.match('cron');
275
262
  const baseConfPath = fs.existsSync(`./engine-private/replica/${deployId}`)
276
263
  ? `./engine-private/replica`
277
264
  : `./engine-private/conf`;
278
265
  for (const envInstanceObj of dataEnv) {
279
266
  const envPath = `${baseConfPath}/${deployId}/.env.${envInstanceObj.env}`;
280
267
  const envObj = dotenv.parse(fs.readFileSync(envPath, 'utf8'));
281
- envObj.PORT = proxyInstance
282
- ? envInstanceObj.port
283
- : envInstanceObj.port + port - singleReplicaHosts.length - (replicaHost ? 1 : 0);
268
+ envObj.PORT = envInstanceObj.port + port - singleReplicaHosts.length - (replicaHost ? 1 : 0);
284
269
 
285
270
  writeEnv(envPath, envObj);
286
271
  }
287
272
  const serverConf = loadReplicas(
288
273
  JSON.parse(fs.readFileSync(`${baseConfPath}/${deployId}/conf.server.json`, 'utf8')),
289
274
  );
290
- if (!proxyInstance) for (const host of Object.keys(serverConf)) port += Object.keys(serverConf[host]).length;
275
+ for (const host of Object.keys(serverConf)) port += Object.keys(serverConf[host]).length;
291
276
  }
292
277
  break;
293
278
 
@@ -383,10 +368,30 @@ try {
383
368
  }
384
369
 
385
370
  case 'version-build': {
371
+ shellCd(`/home/dd/engine`);
386
372
  shellExec(`node bin/deploy clean-core-repo`);
373
+ shellExec(`node bin pull . ${process.env.GITHUB_USERNAME}/engine`);
374
+ shellExec(`node bin run kill 4001`);
375
+ shellExec(`node bin run kill 4002`);
376
+ shellExec(`node bin run kill 4003`);
377
+ shellExec(`npm run update-template`);
378
+ shellExec(`cd ../pwa-microservices-template && npm install`);
379
+ shellExec(`cd ../pwa-microservices-template && npm run build && timeout 5s npm run dev`, {
380
+ async: true,
381
+ });
382
+ await timer(5500);
383
+ const templateRunnerResult = fs.readFileSync(`../pwa-microservices-template/logs/start.js/all.log`, 'utf8');
384
+ logger.info('Test template runner result');
385
+ console.log(templateRunnerResult);
386
+ if (!templateRunnerResult || templateRunnerResult.toLowerCase().match('error')) {
387
+ logger.error('Test template runner result failed');
388
+ break;
389
+ }
387
390
  shellCd(`/home/dd/engine`);
391
+ shellExec(`node bin/deploy clean-core-repo`);
388
392
  const originPackageJson = JSON.parse(fs.readFileSync(`package.json`, 'utf8'));
389
393
  const newVersion = process.argv[3] ?? originPackageJson.version;
394
+ const node = process.argv[4] ?? 'kind-control-plane';
390
395
  const { version } = originPackageJson;
391
396
  originPackageJson.version = newVersion;
392
397
  fs.writeFileSync(`package.json`, JSON.stringify(originPackageJson, null, 4), 'utf8');
@@ -444,8 +449,27 @@ try {
444
449
  shellExec(`node bin/deploy update-dependencies`);
445
450
  shellExec(`auto-changelog`);
446
451
  shellExec(`node bin/build dd`);
447
- shellExec(`node bin deploy --kubeadm --build-manifest --sync --info-router --replicas 1 dd`);
448
- shellExec(`node bin deploy --kubeadm --build-manifest --sync --info-router --replicas 1 dd production`);
452
+ shellExec(
453
+ `node bin deploy --kubeadm --build-manifest --sync --info-router --replicas 1 --node ${node} dd production`,
454
+ );
455
+ shellExec(
456
+ `node bin deploy --kubeadm --build-manifest --sync --info-router --replicas 1 --node ${node} dd development `,
457
+ );
458
+ for (const deployId of fs.readFileSync(`./engine-private/deploy/dd.router`, 'utf8').split(`,`)) {
459
+ fs.copySync(
460
+ `./engine-private/conf/${deployId}/build/development/deployment.yaml`,
461
+ `./manifests/deployment/${deployId}-development/deployment.yaml`,
462
+ );
463
+ fs.copySync(
464
+ `./engine-private/conf/${deployId}/build/development/proxy.yaml`,
465
+ `./manifests/deployment/${deployId}-development/proxy.yaml`,
466
+ );
467
+ }
468
+ shellExec(`sudo rm -rf ./engine-private/conf/dd-default`);
469
+ shellExec(`node bin new --deploy-id dd-default`);
470
+ console.log(fs.existsSync(`./engine-private/conf/dd-default`));
471
+ shellExec(`sudo rm -rf ./engine-private/conf/dd-default`);
472
+ shellExec(`node bin/deploy build-env`);
449
473
  break;
450
474
  }
451
475
 
@@ -457,8 +481,8 @@ try {
457
481
  shellExec(`git add . && cd ./engine-private && git add .`);
458
482
  shellExec(`node bin cmt . ci package-pwa-microservices-template`);
459
483
  shellExec(`node bin cmt ./engine-private ci package-pwa-microservices-template`);
460
- shellExec(`node bin push . underpostnet/engine`);
461
- shellExec(`cd ./engine-private && node ../bin push . underpostnet/engine-private`);
484
+ shellExec(`node bin push . ${process.env.GITHUB_USERNAME}/engine`);
485
+ shellExec(`cd ./engine-private && node ../bin push . ${process.env.GITHUB_USERNAME}/engine-private`);
462
486
  break;
463
487
  }
464
488
 
@@ -512,19 +536,49 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
512
536
 
513
537
  break;
514
538
  }
539
+ case 'build-env': {
540
+ for (let envPath of ['.env.development', '.env.production', '.env.test']) {
541
+ const privateEnvPath = `./engine-private/conf/dd-cron/${envPath}`;
542
+ const privateEnv = dotenv.parse(fs.readFileSync(privateEnvPath, 'utf8'));
543
+ let env = {};
544
+ for (const key of Object.keys(privateEnv)) {
545
+ const originEnv = dotenv.parse(fs.readFileSync(`./${envPath}`, 'utf8'));
546
+ if (key in originEnv) {
547
+ env[key] = originEnv[key];
548
+ continue;
549
+ }
550
+ env[key] =
551
+ `${key}`.toUpperCase().match('API') ||
552
+ `${key}`.toUpperCase().match('KEY') ||
553
+ `${key}`.toUpperCase().match('SECRET') ||
554
+ `${key}`.toUpperCase().match('TOKEN') ||
555
+ `${key}`.toUpperCase().match('PASSWORD') ||
556
+ `${key}`.toUpperCase().match('MAC')
557
+ ? 'changethis'
558
+ : isNaN(parseFloat(privateEnv[key]))
559
+ ? `${privateEnv[key]}`.match(`@`)
560
+ ? 'admin@default.net'
561
+ : 'changethis'
562
+ : privateEnv[key];
563
+ }
564
+ writeEnv(envPath, env);
565
+ }
566
+ break;
567
+ }
515
568
 
516
569
  case 'update-default-conf': {
517
570
  const defaultServer = DefaultConf.server['default.net']['/'];
518
571
  let confName = process.argv[3];
519
- if (confName === 'ghpkg') {
520
- confName = undefined;
521
- const host = 'underpostnet.github.io';
572
+ let defaultConf = false;
573
+ if (confName === 'dd-github-pages') {
574
+ const host = `${process.env.GITHUB_USERNAME ?? 'underpostnet'}.github.io`;
522
575
  const path = '/pwa-microservices-template-ghpkg';
523
576
  DefaultConf.server = {
524
577
  [host]: { [path]: defaultServer },
525
578
  };
526
579
  DefaultConf.server[host][path].apiBaseProxyPath = '/';
527
580
  DefaultConf.server[host][path].apiBaseHost = 'www.nexodev.org';
581
+ defaultConf = true;
528
582
  } else if (confName === 'template') {
529
583
  const host = 'default.net';
530
584
  const path = '/';
@@ -534,7 +588,7 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
534
588
  };
535
589
  // mongodb-0.mongodb-service
536
590
  DefaultConf.server[host][path].db.host = 'mongodb://mongodb-service:27017';
537
- confName = '';
591
+ defaultConf = true;
538
592
  } else if (confName && fs.existsSync(`./engine-private/conf/${confName}`)) {
539
593
  DefaultConf.client = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.client.json`, 'utf8'));
540
594
  DefaultConf.server = JSON.parse(fs.readFileSync(`./engine-private/conf/${confName}/conf.server.json`, 'utf8'));
@@ -558,10 +612,22 @@ ${shellExec(`git log | grep Author: | sort -u`, { stdout: true }).split(`\n`).jo
558
612
  const sepRender = '/**/';
559
613
  const confRawPaths = fs.readFileSync('./conf.js', 'utf8').split(sepRender);
560
614
  confRawPaths[1] = `${JSON.stringify(DefaultConf)};`;
561
- const targetConfPath = `./conf${confName ? `.${confName}` : ''}.js`;
615
+ const targetConfPath = `./conf${defaultConf ? '' : `.${confName}`}.js`;
562
616
  fs.writeFileSync(targetConfPath, confRawPaths.join(sepRender), 'utf8');
563
617
  shellExec(`prettier --write ${targetConfPath}`);
564
618
 
619
+ switch (confName) {
620
+ case 'dd-github-pages':
621
+ {
622
+ if (fs.exists(`./engine-private/conf/${confName}`)) fs.removeSync(`./engine-private/conf/${confName}`);
623
+ shellExec(`node bin new --deploy-id ${confName}`);
624
+ }
625
+ break;
626
+
627
+ default:
628
+ break;
629
+ }
630
+
565
631
  break;
566
632
  }
567
633
 
package/bin/file.js CHANGED
@@ -56,10 +56,13 @@ try {
56
56
  console.log('copy paths', result);
57
57
 
58
58
  if (type === 'update-template') {
59
- if (!fs.existsSync(toPath)) shellExec(`cd .. && underpost clone underpostnet/pwa-microservices-template`);
59
+ if (!fs.existsSync(toPath))
60
+ shellExec(`cd .. && underpost clone ${process.env.GITHUB_USERNAME}/pwa-microservices-template`);
60
61
  else {
61
62
  shellExec(`cd ${toPath} && git reset && git checkout . && git clean -f -d`);
62
- shellExec(`underpost pull ${toPath} underpostnet/pwa-microservices-template`);
63
+ shellExec(`underpost pull ${toPath} ${process.env.GITHUB_USERNAME}/pwa-microservices-template`);
64
+ shellExec(`sudo rm -rf ${toPath}/engine-private`);
65
+ shellExec(`sudo rm -rf ${toPath}/logs`);
63
66
  }
64
67
  } else {
65
68
  fs.removeSync(toPath);
@@ -94,6 +97,7 @@ try {
94
97
  './manifests/deployment/dd-template-development',
95
98
  'bin/web3.js',
96
99
  'bin/cyberia.js',
100
+ 'bin/cyberia0.js',
97
101
  ]) {
98
102
  if (fs.existsSync(deletePath)) fs.removeSync('../pwa-microservices-template/' + deletePath);
99
103
  }
@@ -125,8 +129,8 @@ try {
125
129
  templatePackageJson.scripts = originPackageJson.scripts;
126
130
  templatePackageJson.name = name;
127
131
  templatePackageJson.description = description;
128
- templatePackageJson.scripts.dev = dev;
129
- templatePackageJson.scripts.build = build;
132
+ // templatePackageJson.scripts.dev = dev;
133
+ // templatePackageJson.scripts.build = build;
130
134
  templatePackageJson.keywords = uniqueArray(
131
135
  ['pwa', 'microservices', 'template', 'builder'].concat(templatePackageJson.keywords),
132
136
  );
package/bin/util.js CHANGED
@@ -1,14 +1,10 @@
1
1
  import fs from 'fs-extra';
2
2
  import si from 'systeminformation';
3
3
  import * as dir from 'path';
4
- import { svg } from 'font-awesome-assets';
5
4
 
6
5
  import { loggerFactory } from '../src/server/logger.js';
7
- import { pbcopy, shellExec } from '../src/server/process.js';
6
+ import { pbcopy } from '../src/server/process.js';
8
7
  import { buildKindPorts } from '../src/server/conf.js';
9
- import { FileFactory } from '../src/api/file/file.service.js';
10
- import { faBase64Png, getBufferPngText } from '../src/server/client-icons.js';
11
- import keyword_extractor from 'keyword-extractor';
12
8
 
13
9
  const logger = loggerFactory(import.meta);
14
10
 
@@ -73,57 +69,6 @@ try {
73
69
  cleanEmptyFoldersRecursively('./');
74
70
  break;
75
71
 
76
- case 'text-to-image': {
77
- const buffer = await getBufferPngText({
78
- text: process.argv[3],
79
- textColor: process.argv[4],
80
- bgColor: process.argv[5],
81
- size: process.argv[6],
82
- debugFilename: process.argv[7],
83
- });
84
- fs.writeFileSync(`./text-to-image.png`, buffer);
85
- break;
86
- }
87
- case 'fa-image':
88
- const faId = process.argv[3] ? process.argv[3] : 'user';
89
- const color = process.argv[4] ? process.argv[4] : '#5f5f5f';
90
- const path = process.argv[5] ? process.argv[5] : './';
91
-
92
- {
93
- fs.writeFileSync(`./tmp/${faId}.svg`, svg(faId, color), 'utf8');
94
- const data = fs.readFileSync(`./tmp/${faId}.svg`);
95
- console.log(FileFactory.svg(data, `${faId}.svg`));
96
- fs.removeSync(`${path}${faId}.svg`);
97
- }
98
- {
99
- fs.writeFileSync(`${path}${faId}.png`, Buffer.from(faBase64Png(faId, 100, 100, color), 'base64'));
100
- }
101
-
102
- break;
103
-
104
- case 'b64-image':
105
- fs.writeFileSync('b64-image', `data:image/jpg;base64,${fs.readFileSync(process.argv[3]).toString('base64')}`);
106
- break;
107
-
108
- case 'get-keys': {
109
- const sentence = fs.existsSync('./_')
110
- ? fs.readFileSync('./_', 'utf8')
111
- : process.argv[3]
112
- ? process.argv[3]
113
- : 'President Obama woke up Monday facing a Congressional defeat that many in both parties believed could hobble his presidency.';
114
-
115
- // Extract the keywords
116
- const extraction_result = keyword_extractor.extract(sentence, {
117
- language: 'english',
118
- remove_digits: true,
119
- // return_changed_case: true,
120
- // remove_duplicates: false,
121
- });
122
-
123
- console.log(extraction_result.join(', '));
124
- break;
125
- }
126
-
127
72
  case 'build-ports': {
128
73
  pbcopy(buildKindPorts(process.argv[3], process.argv[4]));
129
74
  }