@underpostnet/underpost 2.8.5 → 2.8.7

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 (109) hide show
  1. package/.github/workflows/ghpkg.yml +1 -1
  2. package/.github/workflows/npmpkg.yml +1 -1
  3. package/.github/workflows/pwa-microservices-template.page.yml +1 -1
  4. package/.vscode/extensions.json +3 -2
  5. package/.vscode/settings.json +6 -0
  6. package/CHANGELOG.md +44 -0
  7. package/Dockerfile +9 -10
  8. package/README.md +39 -2
  9. package/bin/build.js +31 -6
  10. package/bin/deploy.js +1404 -202
  11. package/bin/file.js +8 -0
  12. package/bin/hwt.js +0 -10
  13. package/bin/index.js +1 -187
  14. package/bin/util.js +0 -7
  15. package/bin/vs.js +1 -0
  16. package/cli.md +451 -0
  17. package/conf.js +0 -2
  18. package/docker-compose.yml +1 -1
  19. package/jsdoc.json +1 -1
  20. package/manifests/calico-custom-resources.yaml +25 -0
  21. package/manifests/deployment/adminer/deployment.yaml +32 -0
  22. package/manifests/deployment/adminer/kustomization.yaml +7 -0
  23. package/manifests/deployment/adminer/service.yaml +13 -0
  24. package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
  25. package/manifests/deployment/fastapi/backend-service.yml +19 -0
  26. package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
  27. package/manifests/deployment/fastapi/frontend-service.yml +15 -0
  28. package/manifests/deployment/kafka/deployment.yaml +69 -0
  29. package/manifests/kind-config-dev.yaml +12 -0
  30. package/manifests/kubeadm-calico-config.yaml +119 -0
  31. package/manifests/mongodb/kustomization.yaml +2 -2
  32. package/manifests/mongodb-4.4/kustomization.yaml +7 -0
  33. package/manifests/mongodb-4.4/service-deployment.yaml +63 -0
  34. package/manifests/postgresql/configmap.yaml +9 -0
  35. package/manifests/postgresql/kustomization.yaml +10 -0
  36. package/manifests/postgresql/pv.yaml +15 -0
  37. package/manifests/postgresql/pvc.yaml +13 -0
  38. package/manifests/{core/underpost-engine-headless-service.yaml → postgresql/service.yaml} +3 -3
  39. package/manifests/postgresql/statefulset.yaml +37 -0
  40. package/manifests/valkey/statefulset.yaml +6 -4
  41. package/package.json +10 -14
  42. package/src/api/default/default.service.js +1 -1
  43. package/src/api/user/user.service.js +14 -11
  44. package/src/cli/cluster.js +298 -63
  45. package/src/cli/cron.js +39 -8
  46. package/src/cli/db.js +118 -44
  47. package/src/cli/deploy.js +312 -102
  48. package/src/cli/env.js +9 -3
  49. package/src/cli/fs.js +161 -0
  50. package/src/cli/image.js +45 -104
  51. package/src/cli/index.js +312 -0
  52. package/src/cli/monitor.js +236 -0
  53. package/src/cli/repository.js +26 -2
  54. package/src/cli/script.js +25 -1
  55. package/src/cli/test.js +39 -4
  56. package/src/client/components/core/Account.js +28 -24
  57. package/src/client/components/core/Blockchain.js +1 -1
  58. package/src/client/components/core/CalendarCore.js +14 -73
  59. package/src/client/components/core/CommonJs.js +54 -2
  60. package/src/client/components/core/Css.js +0 -1
  61. package/src/client/components/core/CssCore.js +10 -4
  62. package/src/client/components/core/Docs.js +1 -2
  63. package/src/client/components/core/EventsUI.js +3 -3
  64. package/src/client/components/core/FileExplorer.js +86 -78
  65. package/src/client/components/core/Input.js +4 -2
  66. package/src/client/components/core/JoyStick.js +2 -2
  67. package/src/client/components/core/LoadingAnimation.js +3 -12
  68. package/src/client/components/core/LogIn.js +3 -3
  69. package/src/client/components/core/LogOut.js +1 -1
  70. package/src/client/components/core/Modal.js +44 -14
  71. package/src/client/components/core/Panel.js +26 -66
  72. package/src/client/components/core/PanelForm.js +22 -15
  73. package/src/client/components/core/Recover.js +3 -3
  74. package/src/client/components/core/RichText.js +1 -11
  75. package/src/client/components/core/Router.js +3 -1
  76. package/src/client/components/core/SignUp.js +2 -2
  77. package/src/client/components/default/RoutesDefault.js +3 -2
  78. package/src/client/services/core/core.service.js +15 -10
  79. package/src/client/services/default/default.management.js +45 -38
  80. package/src/client/ssr/Render.js +6 -1
  81. package/src/client/ssr/body/CacheControl.js +2 -3
  82. package/src/client/sw/default.sw.js +3 -3
  83. package/src/db/mongo/MongooseDB.js +17 -1
  84. package/src/index.js +25 -1
  85. package/src/mailer/MailerProvider.js +3 -0
  86. package/src/runtime/lampp/Dockerfile +65 -0
  87. package/src/server/backup.js +3 -3
  88. package/src/server/client-build.js +45 -23
  89. package/src/server/client-formatted.js +2 -1
  90. package/src/server/conf.js +110 -16
  91. package/src/server/dns.js +74 -43
  92. package/src/server/downloader.js +0 -8
  93. package/src/server/json-schema.js +77 -0
  94. package/src/server/network.js +7 -122
  95. package/src/server/peer.js +2 -2
  96. package/src/server/proxy.js +4 -4
  97. package/src/server/runtime.js +40 -12
  98. package/src/server/start.js +122 -0
  99. package/src/server/valkey.js +25 -11
  100. package/test/api.test.js +0 -8
  101. package/manifests/core/kustomization.yaml +0 -11
  102. package/manifests/core/underpost-engine-backup-access.yaml +0 -16
  103. package/manifests/core/underpost-engine-backup-pv-pvc.yaml +0 -22
  104. package/manifests/core/underpost-engine-mongodb-backup-cronjob.yaml +0 -40
  105. package/manifests/core/underpost-engine-mongodb-configmap.yaml +0 -26
  106. package/manifests/core/underpost-engine-statefulset.yaml +0 -91
  107. package/manifests/valkey/underpost-engine-valkey-service.yaml +0 -17
  108. package/manifests/valkey/underpost-engine-valkey-statefulset.yaml +0 -39
  109. /package/manifests/{core/underpost-engine-pv-pvc.yaml → mongodb-4.4/pv-pvc.yaml} +0 -0
package/bin/file.js CHANGED
@@ -136,6 +136,14 @@ try {
136
136
  JSON.stringify(templatePackageLockJson, null, 4),
137
137
  'utf8',
138
138
  );
139
+ const splitKeyword = '## underpost ci/cd cli';
140
+ fs.writeFileSync(
141
+ `../pwa-microservices-template/README.md`,
142
+ fs.readFileSync(`../pwa-microservices-template/README.md`, 'utf8').split(`<!-- -->`)[0] +
143
+ `<!-- -->
144
+ ${splitKeyword + fs.readFileSync(`./README.md`, 'utf8').split(splitKeyword)[1]}`,
145
+ 'utf8',
146
+ );
139
147
  }
140
148
 
141
149
  break;
package/bin/hwt.js CHANGED
@@ -1,19 +1,9 @@
1
1
  import fs from 'fs-extra';
2
- import axios from 'axios';
3
- import https from 'https';
4
2
 
5
- import dotenv from 'dotenv';
6
- import { shellCd, shellExec } from '../src/server/process.js';
7
3
  import { loggerFactory } from '../src/server/logger.js';
8
4
 
9
5
  const logger = loggerFactory(import.meta);
10
6
 
11
- const httpsAgent = new https.Agent({
12
- rejectUnauthorized: false,
13
- });
14
-
15
- axios.defaults.httpsAgent = httpsAgent;
16
-
17
7
  logger.info('argv', process.argv);
18
8
 
19
9
  const [exe, dir, operator, templateId, publicPath] = process.argv;
package/bin/index.js CHANGED
@@ -1,191 +1,5 @@
1
1
  #! /usr/bin/env node
2
2
 
3
- import dotenv from 'dotenv';
4
- import { Command } from 'commander';
5
- import { loggerFactory } from '../src/server/logger.js';
6
- import Underpost from '../src/index.js';
7
- import { getNpmRootPath, loadConf } from '../src/server/conf.js';
8
- import fs from 'fs-extra';
9
- import { commitData } from '../src/client/components/core/CommonJs.js';
10
- import UnderpostScript from '../src/cli/script.js';
11
- import UnderpostDB from '../src/cli/db.js';
12
- import UnderpostCron from '../src/cli/cron.js';
13
-
14
- const npmRoot = getNpmRootPath();
15
- const underpostRoot = `${npmRoot}/underpost/.env`;
16
- fs.existsSync(underpostRoot) ? dotenv.config({ path: underpostRoot, override: true }) : dotenv.config();
17
-
18
- const logger = loggerFactory(import.meta);
19
-
20
- const program = new Command();
21
-
22
- program.name('underpost').description(`underpost ci/cd cli ${Underpost.version}`).version(Underpost.version);
23
-
24
- program
25
- .command('new')
26
- .argument('<app-name>', 'Application name')
27
- .description('Create a new project')
28
- .action(Underpost.repo.new);
29
-
30
- program
31
- .command('clone')
32
- .argument(`<uri>`, 'e.g. username/repository')
33
- .option('--bare', 'Clone only .git files')
34
- .description('Clone github repository')
35
- .action(Underpost.repo.clone);
36
-
37
- program
38
- .command('pull')
39
- .argument('<path>', 'Absolute or relative directory')
40
- .argument(`<uri>`, 'e.g. username/repository')
41
- .description('Pull github repository')
42
- .action(Underpost.repo.pull);
43
-
44
- program
45
- .command('cmt')
46
- .argument('<path>', 'Absolute or relative directory')
47
- .argument(`<commit-type>`, `Options: ${Object.keys(commitData)}`)
48
- .argument(`[module-tag]`, 'Optional set module tag')
49
- .argument(`[message]`, 'Optional set additional message')
50
- .option('--empty', 'Allow empty files')
51
- .option('--copy', 'Copy to clipboard message')
52
- .option('--info', 'Info commit types')
53
- .description('Commit github repository')
54
- .action(Underpost.repo.commit);
55
-
56
- program
57
- .command('push')
58
- .argument('<path>', 'Absolute or relative directory')
59
- .argument(`<uri>`, 'e.g. username/repository')
60
- .option('-f', 'Force push overwriting repository')
61
- .description('Push github repository')
62
- .action(Underpost.repo.push);
63
-
64
- program
65
- .command('env')
66
- .argument('<deploy-id>', `deploy configuration id, if 'clean' restore default`)
67
- .argument('[env]', 'Optional environment, for default is production')
68
- .description('Set environment variables files and conf related to <deploy-id>')
69
- .action(loadConf);
70
-
71
- program
72
- .command('config')
73
- .argument('operator', `Options: ${Object.keys(Underpost.env)}`)
74
- .argument('[key]', 'Config key')
75
- .argument('[value]', 'Config value')
76
- .description(`Manage configuration, operators`)
77
- .action((...args) => Underpost.env[args[0]](args[1], args[2]));
78
-
79
- program
80
- .command('root')
81
- .description('Get npm root path')
82
- .action(() => console.log(getNpmRootPath()));
83
-
84
- program
85
- .command('cluster')
86
- .option('--reset', `Delete all clusters and prune all data and caches`)
87
- .option('--mariadb', 'Init with mariadb statefulset')
88
- .option('--mongodb', 'Init with mongodb statefulset')
89
- .option('--valkey', 'Init with valkey service')
90
- .option('--contour', 'Init with project contour base HTTPProxy and envoy')
91
- .option('--info', 'Get all kinds objects deployed')
92
- .option('--full', 'Init with all statefulsets and services available')
93
- .option('--ns-use <ns-name>', 'Switches current context to namespace')
94
- .action((...args) => {
95
- if (args[0].reset) return Underpost.cluster.reset();
96
- return Underpost.cluster.init(args[0]);
97
- })
98
- .description('Manage cluster, for default initialization base kind cluster');
99
-
100
- program
101
- .command('deploy')
102
- .argument('<deploy-list>', 'Deploy id list, e.g. default-a,default-b')
103
- .argument('[env]', 'Optional environment, for default is development')
104
- .option('--remove', 'Delete deployments and services')
105
- .option('--sync', 'Sync deployments env, ports, and replicas')
106
- .option('--info-router', 'Display router structure')
107
- .option('--build-manifest', 'Build kind yaml manifests: deployments, services, proxy and secrets')
108
- .description('Manage deployment, for default deploy development pods')
109
- .action(Underpost.deploy.callback);
110
-
111
- program
112
- .command('secret')
113
- .argument('<platform>', `Options: ${Object.keys(Underpost.secret)}`)
114
- .option('--init', 'Init secrets platform environment')
115
- .option('--create-from-file <path-env-file>', 'Create secret from env file')
116
- .option('--list', 'Lists secrets')
117
- // .option('--delete [secret-key]', 'Delete key secret, if not set, are default delete all')
118
- // .option('--create [secret-key] [secret-value]', 'Create secret key, with secret value')
119
- .description(`Manage secrets`)
120
- .action((...args) => {
121
- if (args[1].createFromFile) return Underpost.secret[args[0]].createFromEnvFile(args[1].createFromFile);
122
- if (args[1].list) return Underpost.secret[args[0]].list();
123
- if (args[1].init) return Underpost.secret[args[0]].init();
124
- });
125
-
126
- program
127
- .command('dockerfile-node-script')
128
- .argument('<deploy-id>', 'Deploy configuration id')
129
- .argument('[env]', 'Optional environment, for default is development')
130
- .option('--run', 'Run custom entry point script')
131
- .description('Dockerfile custom node build script')
132
- .action(Underpost.image.dockerfile.script);
133
-
134
- program
135
- .command('dockerfile-image-build')
136
- .argument('<deploy-id>', 'Deploy configuration id')
137
- .argument('[env]', 'Optional environment, for default is development')
138
- .argument('[path]', 'Absolute or relative directory, for default is current')
139
- .option('--image-archive', 'Only load tar image from /images')
140
- .description('Build image from Dockerfile')
141
- .action(Underpost.image.dockerfile.build);
142
-
143
- program
144
- .command('dockerfile-pull-base-images')
145
- .description('Pull underpost dockerfile images requirements')
146
- .action(Underpost.image.dockerfile.pullBaseImages);
147
-
148
- program
149
- .command('install')
150
- .description('Fast import underpost npm dependencies')
151
- .action(() => {
152
- fs.copySync(`${npmRoot}/underpost/node_modules`, './node_modules');
153
- });
154
-
155
- program
156
- .command('db')
157
- .argument('<deploy-list>', 'Deploy id list, e.g. default-a,default-b')
158
- .option('--import', 'Import container backups from repositories')
159
- .option('--export', 'Export container backups to repositories')
160
- .description('Manage databases')
161
- .action(UnderpostDB.API.callback);
162
-
163
- program
164
- .command('script')
165
- .argument('operator', `Options: ${Object.keys(UnderpostScript.API)}`)
166
- .argument('<script-name>', 'Script name')
167
- .argument('[script-value]', 'Literal command')
168
- .description(
169
- 'Supports a number of built-in underpost global scripts and their preset life cycle events as well as arbitrary scripts',
170
- )
171
- .action((...args) => Underpost.script[args[0]](args[1], args[2]));
172
-
173
- program
174
- .command('cron')
175
- .argument('[deploy-list]', 'Deploy id list, e.g. default-a,default-b')
176
- .argument('[job-list]', `Deploy id list, e.g. ${Object.keys(UnderpostCron.JOB)}, for default all available jobs`)
177
- .option('--disable-kind-cluster', 'Disable kind cluster configuration')
178
- .option('--init', 'Init cron jobs for cron job default deploy id')
179
- .description('Cron jobs management')
180
- .action(Underpost.cron.callback);
181
-
182
- program
183
- .command('test')
184
- .argument('[deploy-list]', 'Deploy id list, e.g. default-a,default-b')
185
- .description('Manage Test, for default run current underpost default test')
186
- .option('--inside-container', 'Inside container execution context')
187
- .option('--sh', 'Copy to clipboard, container entrypoint shell command')
188
- .option('--logs', 'Display container logs')
189
- .action(Underpost.test.callback);
3
+ import { program } from '../src/cli/index.js';
190
4
 
191
5
  program.parse();
package/bin/util.js CHANGED
@@ -2,8 +2,6 @@ import fs from 'fs-extra';
2
2
  import si from 'systeminformation';
3
3
  import * as dir from 'path';
4
4
  import { svg } from 'font-awesome-assets';
5
- import axios from 'axios';
6
- import https from 'https';
7
5
 
8
6
  import { loggerFactory } from '../src/server/logger.js';
9
7
  import { pbcopy, shellExec } from '../src/server/process.js';
@@ -12,11 +10,6 @@ import { FileFactory } from '../src/api/file/file.service.js';
12
10
  import { faBase64Png, getBufferPngText } from '../src/server/client-icons.js';
13
11
  import keyword_extractor from 'keyword-extractor';
14
12
 
15
- const httpsAgent = new https.Agent({
16
- rejectUnauthorized: false,
17
- });
18
- axios.defaults.httpsAgent = httpsAgent;
19
-
20
13
  const logger = loggerFactory(import.meta);
21
14
 
22
15
  logger.info('argv', process.argv);
package/bin/vs.js CHANGED
@@ -20,6 +20,7 @@ switch (process.argv[2]) {
20
20
  logger.info('Open new vs windows', 'Ctrl Shift N');
21
21
  logger.info('Close current vs windows', 'Ctrl Shift W');
22
22
  logger.info('Preview md', 'Ctrl shift V');
23
+ logger.info('Open git changes', 'Ctrl G + G');
23
24
  logger.warn('Terminal shortcut configure with command pallette', 'Ctl shift T');
24
25
  break;
25
26
  }