cc-core-cli 1.0.0
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.
- package/README.md +107 -0
- package/admin/.env +10 -0
- package/admin/docker-compose.yml +9 -0
- package/bin/index.js +113 -0
- package/genpkg/core-lib/package.json +49 -0
- package/package.json +28 -0
- package/template/media/system/icons/company.svg +1 -0
- package/template/media/system/icons/deploy.svg +2 -0
- package/template/media/system/icons/entities.svg +55 -0
- package/template/media/system/icons/gateway.svg +1 -0
- package/template/media/system/icons/import-export.svg +41 -0
- package/template/media/system/icons/integration.svg +1 -0
- package/template/media/system/icons/master_data.svg +53 -0
- package/template/media/system/icons/monitoring.svg +114 -0
- package/template/media/system/icons/provider.svg +1 -0
- package/template/media/system/icons/report.svg +69 -0
- package/template/media/system/icons/schedule.svg +1 -0
- package/template/media/system/icons/security.svg +1 -0
- package/template/media/system/icons/storage.svg +1 -0
- package/template/media/system/icons/template.svg +44 -0
- package/template/media/system/icons/theme-layout.svg +1 -0
- package/template/newrelic.sh +15 -0
- package/template/package-lock.json +13944 -0
- package/template/package.json +165 -0
- package/template/src/app.controller.ts +33 -0
- package/template/src/app.module.ts +163 -0
- package/template/src/app.service.ts +21 -0
- package/template/src/app_cluster.service.ts +58 -0
- package/template/src/core/core.controller.ts +410 -0
- package/template/src/core/core.module.ts +86 -0
- package/template/src/core/core.service.ts +715 -0
- package/template/src/core/setting/_settings/about.layout.json +49 -0
- package/template/src/core/setting/_settings/cache.layout.json +309 -0
- package/template/src/core/setting/_settings/schedule.layout.json +132 -0
- package/template/src/core/setting/_settings/security.layout.json +1622 -0
- package/template/src/core/setting/_settings/storage.layout.json +520 -0
- package/template/src/core/setting/_settings/swagger.layout.json +128 -0
- package/template/src/core/setting/_settings/theme_layout.layout.json +1195 -0
- package/template/src/main.ts +299 -0
- package/template/src/modules/modules.ts +16 -0
- package/template/tsconfig.build.json +4 -0
- package/template/tsconfig.json +22 -0
- package/template/version.json +5 -0
- package/template_admin/.env +10 -0
- package/template_admin/README.md +29 -0
- package/template_admin/config/service-account.json +1 -0
- package/template_admin/index.js +63 -0
- package/template_admin/newrelic.js +78 -0
- package/template_admin/next.config.js +76 -0
- package/template_admin/package-lock.json +7379 -0
- package/template_admin/package.json +23 -0
- package/template_admin/pages/404.js +13 -0
- package/template_admin/pages/[...url_key].js +21 -0
- package/template_admin/pages/_app.js +10 -0
- package/template_admin/pages/_document.js +43 -0
- package/template_admin/pages/callback.js +13 -0
- package/template_admin/pages/cognito.js +13 -0
- package/template_admin/pages/confirmpassword.js +12 -0
- package/template_admin/pages/forgotpassword.js +12 -0
- package/template_admin/pages/index.js +13 -0
- package/template_admin/pages/login.js +13 -0
- package/template_admin/pages/maintenance.js +12 -0
- package/template_admin/pages/newrelic.js +78 -0
- package/template_admin/pages/password_expired.js +13 -0
- package/template_admin/pages/permission_denied.js +13 -0
- package/template_admin/pages/profile.js +14 -0
- package/template_admin/pages/setting/[...setting_url_key].js +13 -0
- package/template_admin/pages/setting/entities/[subList]/detail.js +14 -0
- package/template_admin/pages/setting/entities/[subList]/detail_compare.js +8 -0
- package/template_admin/pages/setting/entities/[subList]/index.js +7 -0
- package/template_admin/pages/setting/entities/detail/index.js +14 -0
- package/template_admin/pages/setting/entities/index.js +14 -0
- package/template_admin/pages/social.js +13 -0
- package/template_admin/pages/token_expired.js +12 -0
- package/template_admin/public/icon-192x192.png +0 -0
- package/template_admin/public/icon-256x256.png +0 -0
- package/template_admin/public/icon-384x384.png +0 -0
- package/template_admin/public/icon-512x512.png +0 -0
- package/template_admin/public/manifest.json +32 -0
- package/template_admin/public/static/images/aws-cognito.png +0 -0
- package/template_admin/public/static/images/bin_icon.svg +1 -0
- package/template_admin/public/static/images/color-picker.png +0 -0
- package/template_admin/public/static/images/csv_icon.svg +1 -0
- package/template_admin/public/static/images/default-file.png +0 -0
- package/template_admin/public/static/images/default-img.png +0 -0
- package/template_admin/public/static/images/default-map.png +0 -0
- package/template_admin/public/static/images/default-profile.png +0 -0
- package/template_admin/public/static/images/doc_icon.svg +1 -0
- package/template_admin/public/static/images/exe_icon.svg +1 -0
- package/template_admin/public/static/images/gif_icon.svg +1 -0
- package/template_admin/public/static/images/google.png +0 -0
- package/template_admin/public/static/images/id-connect.png +0 -0
- package/template_admin/public/static/images/iso_icon.svg +1 -0
- package/template_admin/public/static/images/json_icon.png +0 -0
- package/template_admin/public/static/images/lang/af-ZA.svg +41 -0
- package/template_admin/public/static/images/lang/ar-AE.svg +38 -0
- package/template_admin/public/static/images/lang/ar-BH.svg +36 -0
- package/template_admin/public/static/images/lang/ar-DZ.svg +40 -0
- package/template_admin/public/static/images/lang/ar-EG.svg +38 -0
- package/template_admin/public/static/images/lang/ar-IQ.svg +46 -0
- package/template_admin/public/static/images/lang/ar-JO.svg +39 -0
- package/template_admin/public/static/images/lang/ar-KW.svg +38 -0
- package/template_admin/public/static/images/lang/ar-LB.svg +40 -0
- package/template_admin/public/static/images/lang/ar-LY.svg +41 -0
- package/template_admin/public/static/images/lang/ar-MA.svg +36 -0
- package/template_admin/public/static/images/lang/ar-OM.svg +70 -0
- package/template_admin/public/static/images/lang/ar-QA.svg +36 -0
- package/template_admin/public/static/images/lang/ar-SA.svg +62 -0
- package/template_admin/public/static/images/lang/ar-TN.svg +40 -0
- package/template_admin/public/static/images/lang/ar-YE.svg +37 -0
- package/template_admin/public/static/images/lang/az-AZ.svg +41 -0
- package/template_admin/public/static/images/lang/be-BY.svg +38 -0
- package/template_admin/public/static/images/lang/bg-BG.svg +37 -0
- package/template_admin/public/static/images/lang/bs-BA.svg +48 -0
- package/template_admin/public/static/images/lang/ca-ES.svg +89 -0
- package/template_admin/public/static/images/lang/cs-CZ.svg +37 -0
- package/template_admin/public/static/images/lang/cy-GB.svg +43 -0
- package/template_admin/public/static/images/lang/da-DK.svg +36 -0
- package/template_admin/public/static/images/lang/de-AT.svg +39 -0
- package/template_admin/public/static/images/lang/de-CH.svg +36 -0
- package/template_admin/public/static/images/lang/de-DE.svg +37 -0
- package/template_admin/public/static/images/lang/de-LI.svg +45 -0
- package/template_admin/public/static/images/lang/de-LU.svg +37 -0
- package/template_admin/public/static/images/lang/dv-MV.svg +37 -0
- package/template_admin/public/static/images/lang/el-GR.svg +46 -0
- package/template_admin/public/static/images/lang/en-AU.svg +51 -0
- package/template_admin/public/static/images/lang/en-BZ.svg +196 -0
- package/template_admin/public/static/images/lang/en-CA.svg +43 -0
- package/template_admin/public/static/images/lang/en-GB.svg +43 -0
- package/template_admin/public/static/images/lang/en-IE.svg +37 -0
- package/template_admin/public/static/images/lang/en-JM.svg +40 -0
- package/template_admin/public/static/images/lang/en-NZ.svg +51 -0
- package/template_admin/public/static/images/lang/en-PH.svg +51 -0
- package/template_admin/public/static/images/lang/en-SG.svg +44 -0
- package/template_admin/public/static/images/lang/en-TT.svg +40 -0
- package/template_admin/public/static/images/lang/en-US.svg +88 -0
- package/template_admin/public/static/images/lang/en-ZA.svg +41 -0
- package/template_admin/public/static/images/lang/en-ZW.svg +50 -0
- package/template_admin/public/static/images/lang/es-AR.svg +41 -0
- package/template_admin/public/static/images/lang/es-BO.svg +101 -0
- package/template_admin/public/static/images/lang/es-CL.svg +38 -0
- package/template_admin/public/static/images/lang/es-CO.svg +37 -0
- package/template_admin/public/static/images/lang/es-CR.svg +111 -0
- package/template_admin/public/static/images/lang/es-DO.svg +103 -0
- package/template_admin/public/static/images/lang/es-EC.svg +87 -0
- package/template_admin/public/static/images/lang/es-ES.svg +89 -0
- package/template_admin/public/static/images/lang/es-GT.svg +109 -0
- package/template_admin/public/static/images/lang/es-HN.svg +46 -0
- package/template_admin/public/static/images/lang/es-MX.svg +60 -0
- package/template_admin/public/static/images/lang/es-NI.svg +82 -0
- package/template_admin/public/static/images/lang/es-PA.svg +41 -0
- package/template_admin/public/static/images/lang/es-PE.svg +37 -0
- package/template_admin/public/static/images/lang/es-PR.svg +43 -0
- package/template_admin/public/static/images/lang/es-PY.svg +41 -0
- package/template_admin/public/static/images/lang/es-SV.svg +115 -0
- package/template_admin/public/static/images/lang/es-UY.svg +75 -0
- package/template_admin/public/static/images/lang/es-VE.svg +49 -0
- package/template_admin/public/static/images/lang/et-EE.svg +37 -0
- package/template_admin/public/static/images/lang/eu-ES.svg +89 -0
- package/template_admin/public/static/images/lang/fa-IR.svg +81 -0
- package/template_admin/public/static/images/lang/fi-FI.svg +36 -0
- package/template_admin/public/static/images/lang/fr-BE.svg +37 -0
- package/template_admin/public/static/images/lang/fr-CA.svg +43 -0
- package/template_admin/public/static/images/lang/fr-CH.svg +36 -0
- package/template_admin/public/static/images/lang/fr-FR.svg +37 -0
- package/template_admin/public/static/images/lang/fr-LU.svg +37 -0
- package/template_admin/public/static/images/lang/fr-MC.svg +36 -0
- package/template_admin/public/static/images/lang/gl-ES.svg +89 -0
- package/template_admin/public/static/images/lang/gu-IN.svg +59 -0
- package/template_admin/public/static/images/lang/he-IL.svg +37 -0
- package/template_admin/public/static/images/lang/hi-IN.svg +59 -0
- package/template_admin/public/static/images/lang/hr-BA.svg +48 -0
- package/template_admin/public/static/images/lang/hr-HR.svg +101 -0
- package/template_admin/public/static/images/lang/hu-HU.svg +37 -0
- package/template_admin/public/static/images/lang/hy-AM.svg +37 -0
- package/template_admin/public/static/images/lang/id-ID.svg +36 -0
- package/template_admin/public/static/images/lang/is-IS.svg +37 -0
- package/template_admin/public/static/images/lang/it-CH.svg +36 -0
- package/template_admin/public/static/images/lang/it-IT.svg +37 -0
- package/template_admin/public/static/images/lang/ja-JP.svg +36 -0
- package/template_admin/public/static/images/lang/ka-GE.svg +42 -0
- package/template_admin/public/static/images/lang/kk-KZ.svg +72 -0
- package/template_admin/public/static/images/lang/kn-IN.svg +59 -0
- package/template_admin/public/static/images/lang/ko-KR.svg +57 -0
- package/template_admin/public/static/images/lang/kok-IN.svg +59 -0
- package/template_admin/public/static/images/lang/ky-KG.svg +54 -0
- package/template_admin/public/static/images/lang/lt-LT.svg +37 -0
- package/template_admin/public/static/images/lang/lv-LV.svg +36 -0
- package/template_admin/public/static/images/lang/mi-NZ.svg +51 -0
- package/template_admin/public/static/images/lang/mk-MK.svg +46 -0
- package/template_admin/public/static/images/lang/mn-MN.svg +50 -0
- package/template_admin/public/static/images/lang/mr-IN.svg +59 -0
- package/template_admin/public/static/images/lang/ms-BN.svg +47 -0
- package/template_admin/public/static/images/lang/ms-MY.svg +53 -0
- package/template_admin/public/static/images/lang/mt-MT.svg +50 -0
- package/template_admin/public/static/images/lang/nb-NO.svg +37 -0
- package/template_admin/public/static/images/lang/nl-BE.svg +37 -0
- package/template_admin/public/static/images/lang/nl-NL.svg +37 -0
- package/template_admin/public/static/images/lang/nn-NO.svg +37 -0
- package/template_admin/public/static/images/lang/ns-ZA.svg +41 -0
- package/template_admin/public/static/images/lang/pa-IN.svg +59 -0
- package/template_admin/public/static/images/lang/pl-PL.svg +36 -0
- package/template_admin/public/static/images/lang/ps-AR.svg +68 -0
- package/template_admin/public/static/images/lang/pt-BR.svg +51 -0
- package/template_admin/public/static/images/lang/pt-PT.svg +55 -0
- package/template_admin/public/static/images/lang/qu-BO.svg +101 -0
- package/template_admin/public/static/images/lang/qu-EC.svg +87 -0
- package/template_admin/public/static/images/lang/qu-PE.svg +37 -0
- package/template_admin/public/static/images/lang/ro-RO.svg +37 -0
- package/template_admin/public/static/images/lang/ru-RU.svg +37 -0
- package/template_admin/public/static/images/lang/sa-IN.svg +59 -0
- package/template_admin/public/static/images/lang/se-FI.svg +36 -0
- package/template_admin/public/static/images/lang/se-NO.svg +37 -0
- package/template_admin/public/static/images/lang/se-SE.svg +36 -0
- package/template_admin/public/static/images/lang/sk-SK.svg +41 -0
- package/template_admin/public/static/images/lang/sl-SI.svg +51 -0
- package/template_admin/public/static/images/lang/sq-AL.svg +36 -0
- package/template_admin/public/static/images/lang/sr-BA.svg +48 -0
- package/template_admin/public/static/images/lang/sr-SP.svg +79 -0
- package/template_admin/public/static/images/lang/sv-FI.svg +36 -0
- package/template_admin/public/static/images/lang/sv-SE.svg +36 -0
- package/template_admin/public/static/images/lang/sw-KE.svg +55 -0
- package/template_admin/public/static/images/lang/syr-SY.svg +41 -0
- package/template_admin/public/static/images/lang/ta-IN.svg +59 -0
- package/template_admin/public/static/images/lang/te-IN.svg +59 -0
- package/template_admin/public/static/images/lang/th-TH.svg +40 -0
- package/template_admin/public/static/images/lang/tl-PH.svg +51 -0
- package/template_admin/public/static/images/lang/tn-ZA.svg +41 -0
- package/template_admin/public/static/images/lang/tr-TR.svg +39 -0
- package/template_admin/public/static/images/lang/tt-RU.svg +37 -0
- package/template_admin/public/static/images/lang/uk-UA.svg +36 -0
- package/template_admin/public/static/images/lang/ur-PK.svg +40 -0
- package/template_admin/public/static/images/lang/vi-VN.svg +36 -0
- package/template_admin/public/static/images/lang/xh-ZA.svg +41 -0
- package/template_admin/public/static/images/lang/zh-CN.svg +42 -0
- package/template_admin/public/static/images/lang/zh-HK.svg +42 -0
- package/template_admin/public/static/images/lang/zh-SG.svg +44 -0
- package/template_admin/public/static/images/lang/zh-TW.svg +43 -0
- package/template_admin/public/static/images/lang/zu-ZA.svg +41 -0
- package/template_admin/public/static/images/logo-company-default.svg +1 -0
- package/template_admin/public/static/images/logo.png +0 -0
- package/template_admin/public/static/images/m_logo.png +0 -0
- package/template_admin/public/static/images/maintenance-icon.png +0 -0
- package/template_admin/public/static/images/member_logo.png +0 -0
- package/template_admin/public/static/images/pdf_icon.svg +1 -0
- package/template_admin/public/static/images/png_icon.svg +1 -0
- package/template_admin/public/static/images/security.png +0 -0
- package/template_admin/public/static/images/translation.svg +82 -0
- package/template_admin/public/static/images/txt_icon.svg +1 -0
- package/template_admin/public/static/images/widget-bubble.png +0 -0
- package/template_admin/public/static/images/widget-column.png +0 -0
- package/template_admin/public/static/images/widget-combo.png +0 -0
- package/template_admin/public/static/images/widget-doughnut.png +0 -0
- package/template_admin/public/static/images/widget-line.png +0 -0
- package/template_admin/public/static/images/widget-pie.png +0 -0
- package/template_admin/public/static/images/widget-scatter.png +0 -0
- package/template_admin/public/static/images/widget-summary_box.png +0 -0
- package/template_admin/public/static/images/widget-treemap.png +0 -0
- package/template_admin/public/static/images/xls_icon.svg +1 -0
- package/template_admin/public/static/images/xml_icon.svg +1 -0
- package/template_admin/public/static/images/zip_icon.svg +1 -0
- package/template_admin/public/static/styles/activity_log.less +157 -0
- package/template_admin/public/static/styles/calendar.less +132 -0
- package/template_admin/public/static/styles/collections.less +123 -0
- package/template_admin/public/static/styles/compute_field.less +250 -0
- package/template_admin/public/static/styles/custom-antd.less +78 -0
- package/template_admin/public/static/styles/custom.less +0 -0
- package/template_admin/public/static/styles/custom_icon.less +556 -0
- package/template_admin/public/static/styles/date_search.less +53 -0
- package/template_admin/public/static/styles/detail.less +2670 -0
- package/template_admin/public/static/styles/entities.less +891 -0
- package/template_admin/public/static/styles/filter.less +24 -0
- package/template_admin/public/static/styles/filter_new.less +154 -0
- package/template_admin/public/static/styles/hook.less +136 -0
- package/template_admin/public/static/styles/import_export.less +62 -0
- package/template_admin/public/static/styles/input.less +386 -0
- package/template_admin/public/static/styles/layout.less +1211 -0
- package/template_admin/public/static/styles/login.less +222 -0
- package/template_admin/public/static/styles/mainheader.less +32 -0
- package/template_admin/public/static/styles/permission_denied.less +13 -0
- package/template_admin/public/static/styles/print_template.less +36 -0
- package/template_admin/public/static/styles/rabbitmq.less +3 -0
- package/template_admin/public/static/styles/restful.less +22 -0
- package/template_admin/public/static/styles/setting.less +409 -0
- package/template_admin/public/static/styles/style.less +1736 -0
- package/template_admin/public/static/styles/system.less +11 -0
- package/template_admin/public/static/styles/versioning_control.less +24 -0
- package/template_admin/public/static/styles/wysiwyg.less +8 -0
- package/template_admin/theme/main.less +1 -0
- package/template_admin/theme/vars.less +34 -0
- package/template_admin/version.json +1 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cc-core",
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"author": "",
|
|
6
|
+
"private": true,
|
|
7
|
+
"license": "UNLICENSED",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"prebuild": "rimraf dist",
|
|
10
|
+
"build": "source ./newrelic.sh && nest build",
|
|
11
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
12
|
+
"start": "nest start",
|
|
13
|
+
"start:dev": "source ./newrelic.sh && nest start --watch",
|
|
14
|
+
"start:debug": "nest start --debug --watch",
|
|
15
|
+
"start:prod": "source ./newrelic.sh && node dist/src/main",
|
|
16
|
+
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
17
|
+
"test": "jest",
|
|
18
|
+
"test:watch": "jest --watch",
|
|
19
|
+
"test:cov": "jest --coverage",
|
|
20
|
+
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
21
|
+
"test:e2e": "jest --config ./test/jest-e2e.json"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@aws-sdk/client-s3": "^3.282.0",
|
|
25
|
+
"@aws-sdk/credential-providers": "^3.293.0",
|
|
26
|
+
"@azure/identity": "^3.2.3",
|
|
27
|
+
"@azure/storage-file-datalake": "^12.13.0",
|
|
28
|
+
"@fastify/cors": "^8.2.0",
|
|
29
|
+
"@fastify/static": "^6.5.1",
|
|
30
|
+
"@golevelup/nestjs-discovery": "^3.0.0",
|
|
31
|
+
"@nestjs/bull": "^0.6.3",
|
|
32
|
+
"@nestjs/common": "^9.3.9",
|
|
33
|
+
"@nestjs/core": "^9.3.9",
|
|
34
|
+
"@nestjs/jwt": "^10.0.2",
|
|
35
|
+
"@nestjs/mongoose": "^9.2.1",
|
|
36
|
+
"@nestjs/passport": "^9.0.3",
|
|
37
|
+
"@nestjs/platform-express": "^9.3.9",
|
|
38
|
+
"@nestjs/platform-fastify": "^9.3.9",
|
|
39
|
+
"@nestjs/schedule": "^2.2.0",
|
|
40
|
+
"@nestjs/swagger": "^6.2.1",
|
|
41
|
+
"@types/chroma-js": "^2.4.0",
|
|
42
|
+
"@types/numeral": "^2.0.2",
|
|
43
|
+
"amazon-cognito-identity-js": "^4.5.0",
|
|
44
|
+
"amqplib": "^0.8.0",
|
|
45
|
+
"async-redis": "^2.0.0",
|
|
46
|
+
"axios": "^0.21.1",
|
|
47
|
+
"base32-codecs": "^1.0.4",
|
|
48
|
+
"bs58": "^5.0.0",
|
|
49
|
+
"bson": "^4.2.3",
|
|
50
|
+
"bull": "^3.18.0",
|
|
51
|
+
"bwip-js": "^2.0.11",
|
|
52
|
+
"cartesian": "^1.0.1",
|
|
53
|
+
"cc-core-lib": "git+ssh://git@cconnect:shopstackthailand/cc-core-lib.git#latest",
|
|
54
|
+
"chroma-js": "^2.4.2",
|
|
55
|
+
"cls-rtracer": "^2.6.2",
|
|
56
|
+
"cron-converter": "^1.0.0",
|
|
57
|
+
"crypto-js": "^4.0.0",
|
|
58
|
+
"csvtojson": "^2.0.10",
|
|
59
|
+
"currency-formatter": "^1.5.9",
|
|
60
|
+
"dayjs": "^1.11.5",
|
|
61
|
+
"dotenv": "^16.0.3",
|
|
62
|
+
"elasticsearch": "^16.7.2",
|
|
63
|
+
"events": "^3.3.0",
|
|
64
|
+
"exceljs": "^4.2.1",
|
|
65
|
+
"fastify": "^4.10.2",
|
|
66
|
+
"fastify-helmet": "^5.0.3",
|
|
67
|
+
"fastify-rate-limit": "^4.0.3",
|
|
68
|
+
"fastify-xml-body-parser": "^2.2.0",
|
|
69
|
+
"file-type": "^16.5.0",
|
|
70
|
+
"flat": "^5.0.2",
|
|
71
|
+
"form-data": "^3.0.0",
|
|
72
|
+
"fs-extra": "^9.0.1",
|
|
73
|
+
"googleapis": "^59.0.0",
|
|
74
|
+
"hot-formula-parser": "^4.0.0",
|
|
75
|
+
"image-to-base64": "^2.1.1",
|
|
76
|
+
"ioredis": "^5.2.4",
|
|
77
|
+
"json-rules-engine": "^6.1.2",
|
|
78
|
+
"json2csv": "^5.0.3",
|
|
79
|
+
"jsonwebtoken": "^9.0.0",
|
|
80
|
+
"jwk-to-pem": "^2.0.3",
|
|
81
|
+
"kafkajs": "^1.16.0",
|
|
82
|
+
"knex": "^2.4.2",
|
|
83
|
+
"ldapauth-fork": "^5.0.5",
|
|
84
|
+
"lodash": "^4.17.20",
|
|
85
|
+
"lzutf8": "^0.6.0",
|
|
86
|
+
"moment": "^2.29.1",
|
|
87
|
+
"moment-timezone": "^0.5.40",
|
|
88
|
+
"mongoose": "^6.7.2",
|
|
89
|
+
"mongoose-dynamic-schemas": "^1.2.6",
|
|
90
|
+
"ms": "^2.1.2",
|
|
91
|
+
"mysql": "^2.18.1",
|
|
92
|
+
"mysql2": "^2.3.3",
|
|
93
|
+
"nanoid": "^3.1.20",
|
|
94
|
+
"nest-emitter": "^1.1.0",
|
|
95
|
+
"nestjs-cls": "^3.3.1",
|
|
96
|
+
"newrelic": "^9.10.1",
|
|
97
|
+
"node-fetch": "^2.6.1",
|
|
98
|
+
"nodemailer": "^6.4.14",
|
|
99
|
+
"numeral": "^2.0.6",
|
|
100
|
+
"object-path": "^0.11.8",
|
|
101
|
+
"oracledb": "^5.2.0",
|
|
102
|
+
"otplib": "^12.0.1",
|
|
103
|
+
"passport": "^0.6.0",
|
|
104
|
+
"passport-jwt": "^4.0.0",
|
|
105
|
+
"passport-local": "^1.0.0",
|
|
106
|
+
"pdf-img-convert": "^1.2.1",
|
|
107
|
+
"pdf-merger-js": "^3.2.1",
|
|
108
|
+
"performance-now": "^2.1.0",
|
|
109
|
+
"pg": "^8.7.1",
|
|
110
|
+
"puppeteer": "^5.3.1",
|
|
111
|
+
"qs": "^6.9.4",
|
|
112
|
+
"randomstring": "^1.1.5",
|
|
113
|
+
"reflect-metadata": "^0.1.13",
|
|
114
|
+
"request-image-size": "^2.2.0",
|
|
115
|
+
"rimraf": "^3.0.2",
|
|
116
|
+
"rxjs": "^7.5.4",
|
|
117
|
+
"sharp": "^0.31.2",
|
|
118
|
+
"sqlite3": "^5.0.2",
|
|
119
|
+
"ssh2-sftp-client": "^9.0.0",
|
|
120
|
+
"string-replace-async": "^2.0.0",
|
|
121
|
+
"stringify-object": "^3.3.0",
|
|
122
|
+
"swagger-ui-express": "^4.1.4",
|
|
123
|
+
"tedious": "^15.1.3",
|
|
124
|
+
"tesseract.js": "^4.0.3",
|
|
125
|
+
"thai-baht-text": "^1.0.8",
|
|
126
|
+
"to-words": "^2.3.0",
|
|
127
|
+
"uuid": "^8.3.1",
|
|
128
|
+
"web-push": "^3.6.1",
|
|
129
|
+
"xlsx": "^0.18.5"
|
|
130
|
+
},
|
|
131
|
+
"devDependencies": {
|
|
132
|
+
"@types/bull": "^3.14.4",
|
|
133
|
+
"@types/express": "^4.17.8",
|
|
134
|
+
"@types/jest": "25.1.4",
|
|
135
|
+
"@types/node": "^13.13.27",
|
|
136
|
+
"@types/supertest": "^2.0.10",
|
|
137
|
+
"@typescript-eslint/eslint-plugin": "^6.1.0",
|
|
138
|
+
"@typescript-eslint/parser": "^6.1.0",
|
|
139
|
+
"eslint": "^8.44.0",
|
|
140
|
+
"eslint-config-prettier": "^6.13.0",
|
|
141
|
+
"eslint-plugin-import": "^2.22.1",
|
|
142
|
+
"jest": "^29.3.1",
|
|
143
|
+
"prettier": "^1.19.1",
|
|
144
|
+
"supertest": "^4.0.2",
|
|
145
|
+
"ts-jest": "^29.0.5",
|
|
146
|
+
"ts-loader": "^6.2.1",
|
|
147
|
+
"ts-node": "^10.9.1",
|
|
148
|
+
"tsconfig-paths": "^3.9.0",
|
|
149
|
+
"typescript": "^4.8.4"
|
|
150
|
+
},
|
|
151
|
+
"jest": {
|
|
152
|
+
"moduleFileExtensions": [
|
|
153
|
+
"js",
|
|
154
|
+
"json",
|
|
155
|
+
"ts"
|
|
156
|
+
],
|
|
157
|
+
"rootDir": "src",
|
|
158
|
+
"testRegex": ".spec.ts$",
|
|
159
|
+
"transform": {
|
|
160
|
+
"^.+\\.(t|j)s$": "ts-jest"
|
|
161
|
+
},
|
|
162
|
+
"coverageDirectory": "../coverage",
|
|
163
|
+
"testEnvironment": "node"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as _ from "lodash";
|
|
2
|
+
|
|
3
|
+
import { Controller, Get, Param } from "@nestjs/common";
|
|
4
|
+
import { AppService } from "./app.service";
|
|
5
|
+
|
|
6
|
+
import { Public, CONST } from "cc-core-lib/core";
|
|
7
|
+
@Controller()
|
|
8
|
+
export class AppController {
|
|
9
|
+
constructor(private readonly appService: AppService) { }
|
|
10
|
+
|
|
11
|
+
@Public()
|
|
12
|
+
@Get("/health_check")
|
|
13
|
+
healthCheck(): boolean {
|
|
14
|
+
return this.appService.healthCheck();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@Public()
|
|
18
|
+
@Get("/health_check/init")
|
|
19
|
+
init(): string {
|
|
20
|
+
return this.appService.init();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Get("/all_x_routes/:method")
|
|
24
|
+
listAllRoutes(@Param() params: any): any {
|
|
25
|
+
const { method } = params;
|
|
26
|
+
if (_.isEmpty(method)) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
return CONST.ENDPOINT_PATHS.filter(
|
|
30
|
+
p => p.method.toLowerCase() === method.toLowerCase()
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import * as _ from "lodash";
|
|
2
|
+
import {
|
|
3
|
+
Module,
|
|
4
|
+
} from "@nestjs/common";
|
|
5
|
+
import { MongooseModule } from "@nestjs/mongoose";
|
|
6
|
+
import { ClsModule } from "nestjs-cls";
|
|
7
|
+
import * as dotenv from "dotenv";
|
|
8
|
+
|
|
9
|
+
import { NestEmitterModule } from "nest-emitter";
|
|
10
|
+
import { EventEmitter } from "events";
|
|
11
|
+
import { AppController } from "./app.controller";
|
|
12
|
+
import { AppService } from "./app.service";
|
|
13
|
+
import { ScheduleModule } from "@nestjs/schedule";
|
|
14
|
+
|
|
15
|
+
import { CUSTOM_MODULES } from "./modules/modules";
|
|
16
|
+
// import { CoreModule } from "./core/core.module";
|
|
17
|
+
import {
|
|
18
|
+
UserModule,
|
|
19
|
+
AuthModule,
|
|
20
|
+
EntitiesModule,
|
|
21
|
+
ScheduleActionModule,
|
|
22
|
+
SettingModule,
|
|
23
|
+
TemplateModule,
|
|
24
|
+
QueueModule,
|
|
25
|
+
TranslateModule,
|
|
26
|
+
AttachmentModule,
|
|
27
|
+
NotificationModule,
|
|
28
|
+
SFTPSettingModule,
|
|
29
|
+
RedisModule,
|
|
30
|
+
MailSettingModule,
|
|
31
|
+
SmsModule,
|
|
32
|
+
ShortlyModule,
|
|
33
|
+
LayoutModule,
|
|
34
|
+
ReportModule,
|
|
35
|
+
CompanyModule,
|
|
36
|
+
LanguageModule,
|
|
37
|
+
ImportExportModule,
|
|
38
|
+
CommentDataModule,
|
|
39
|
+
DatabaseModule,
|
|
40
|
+
DeployModule,
|
|
41
|
+
CustomFunctionModule,
|
|
42
|
+
CacheModule
|
|
43
|
+
} from 'cc-core-lib/core'
|
|
44
|
+
|
|
45
|
+
import { CoreModule } from './core/core.module'
|
|
46
|
+
|
|
47
|
+
// const { CoreModule } = core
|
|
48
|
+
|
|
49
|
+
dotenv.config();
|
|
50
|
+
|
|
51
|
+
const SPECIFY_CUSTOM_MODULES =
|
|
52
|
+
process.env.CUSTOM_MODULES === "" || process.env.CUSTOM_MODULES === undefined
|
|
53
|
+
? []
|
|
54
|
+
: process.env.CUSTOM_MODULES.split(",");
|
|
55
|
+
const RUN_CUSTOM_MODULES =
|
|
56
|
+
SPECIFY_CUSTOM_MODULES.length === 0
|
|
57
|
+
? CUSTOM_MODULES.map(c => c.module)
|
|
58
|
+
: CUSTOM_MODULES.filter(c =>
|
|
59
|
+
SPECIFY_CUSTOM_MODULES.includes(c.module.name)
|
|
60
|
+
).map(c => c.module);
|
|
61
|
+
|
|
62
|
+
const mongoConfig = {};
|
|
63
|
+
|
|
64
|
+
if (+process.env.MONGODB_MIN_POOL_SIZE) {
|
|
65
|
+
mongoConfig["minPoolSize"] = +process.env.MONGODB_MIN_POOL_SIZE;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (+process.env.MONGODB_MAX_POOL_SIZE) {
|
|
69
|
+
mongoConfig["maxPoolSize"] = +process.env.MONGODB_MAX_POOL_SIZE;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@Module({
|
|
73
|
+
imports: [
|
|
74
|
+
// MongooseModule.forRootAsync({
|
|
75
|
+
// useFactory: async () => ({
|
|
76
|
+
// uri: process.env.MONGODB_URI,
|
|
77
|
+
// useNewUrlParser: true,
|
|
78
|
+
// useFindAndModify: false
|
|
79
|
+
// })
|
|
80
|
+
// }),
|
|
81
|
+
MongooseModule.forRoot(process.env.MONGODB_URI, mongoConfig),
|
|
82
|
+
// Register the ClsModule,
|
|
83
|
+
ClsModule.forRoot({
|
|
84
|
+
middleware: {
|
|
85
|
+
// automatically mount the
|
|
86
|
+
// ClsMiddleware for all routes
|
|
87
|
+
mount: true,
|
|
88
|
+
// and use the setup method to
|
|
89
|
+
// provide default store values.
|
|
90
|
+
setup: (cls, req) => {
|
|
91
|
+
cls.set("request", {
|
|
92
|
+
api_key: _.get(req, "api_key", {}),
|
|
93
|
+
profile: _.get(req, "profile", {}),
|
|
94
|
+
permissions: _.get(req, "permissions", []),
|
|
95
|
+
headers: _.get(req, "headers", {}),
|
|
96
|
+
ip: _.get(req, "ip"),
|
|
97
|
+
hostname: _.get(req, "hostname"),
|
|
98
|
+
body: _.get(req, "body", {}),
|
|
99
|
+
action_profile: _.get(req, "action_profile", {})
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
interceptor: {
|
|
104
|
+
mount: true,
|
|
105
|
+
setup: (cls, ctx) => {
|
|
106
|
+
const req = ctx.switchToHttp().getRequest();
|
|
107
|
+
cls.set("request", {
|
|
108
|
+
api_key: _.get(req, "api_key", {}),
|
|
109
|
+
profile: _.get(req, "profile", {}),
|
|
110
|
+
permissions: _.get(req, "permissions", []),
|
|
111
|
+
roles: _.get(req, "roles", []),
|
|
112
|
+
headers: _.get(req, "headers", {}),
|
|
113
|
+
// ip: req.connection.remoteAddress,
|
|
114
|
+
ip:
|
|
115
|
+
_.get(req, "socket.remoteAddress") ||
|
|
116
|
+
_.get(req, "connection.remoteAddress"),
|
|
117
|
+
hostname: req.hostname,
|
|
118
|
+
body: _.get(req, "body", {}),
|
|
119
|
+
action_profile: _.get(req, "action_profile", {})
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}),
|
|
124
|
+
|
|
125
|
+
EntitiesModule,
|
|
126
|
+
NestEmitterModule.forRoot(new EventEmitter()),
|
|
127
|
+
ScheduleModule.forRoot(),
|
|
128
|
+
AuthModule,
|
|
129
|
+
SettingModule,
|
|
130
|
+
QueueModule,
|
|
131
|
+
RedisModule,
|
|
132
|
+
DatabaseModule,
|
|
133
|
+
CacheModule,
|
|
134
|
+
|
|
135
|
+
CompanyModule,
|
|
136
|
+
|
|
137
|
+
AttachmentModule,
|
|
138
|
+
CommentDataModule,
|
|
139
|
+
CustomFunctionModule,
|
|
140
|
+
DeployModule,
|
|
141
|
+
ReportModule,
|
|
142
|
+
ImportExportModule,
|
|
143
|
+
LanguageModule,
|
|
144
|
+
MailSettingModule,
|
|
145
|
+
ScheduleActionModule,
|
|
146
|
+
SFTPSettingModule,
|
|
147
|
+
SmsModule,
|
|
148
|
+
TemplateModule,
|
|
149
|
+
TranslateModule,
|
|
150
|
+
NotificationModule,
|
|
151
|
+
ShortlyModule,
|
|
152
|
+
UserModule,
|
|
153
|
+
|
|
154
|
+
LayoutModule,
|
|
155
|
+
|
|
156
|
+
// ...RUN_CUSTOM_MODULES,
|
|
157
|
+
|
|
158
|
+
CoreModule
|
|
159
|
+
],
|
|
160
|
+
controllers: [AppController],
|
|
161
|
+
providers: [AppService]
|
|
162
|
+
})
|
|
163
|
+
export class AppModule { }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
2
|
+
import * as os from "os";
|
|
3
|
+
import { CONST } from "cc-core-lib/core";
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class AppService {
|
|
7
|
+
private _isReady: boolean;
|
|
8
|
+
|
|
9
|
+
init(): string {
|
|
10
|
+
this._isReady = true;
|
|
11
|
+
Logger.log(`CPU cores ${os.cpus().length}`, "OS");
|
|
12
|
+
return "health_check";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
healthCheck(): boolean {
|
|
16
|
+
if (!CONST.HEALTH_CHECK) {
|
|
17
|
+
throw new Error("not ready");
|
|
18
|
+
}
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as _ from "lodash";
|
|
2
|
+
import * as cluster from "cluster";
|
|
3
|
+
import * as os from "os";
|
|
4
|
+
import { Injectable } from "@nestjs/common";
|
|
5
|
+
import axios, { AxiosInstance } from "axios";
|
|
6
|
+
import { CONST } from 'cc-core-lib/core'
|
|
7
|
+
|
|
8
|
+
CONST.INTERNAL_DOMAIN = `http://${process.env.LOOP_BACK_IP}:${process.env
|
|
9
|
+
.PORT || 3000}/api/v1`;
|
|
10
|
+
|
|
11
|
+
const numCPUs = _.isEmpty(process.env.MAX_WORKER)
|
|
12
|
+
? os.cpus().length
|
|
13
|
+
: parseInt(process.env.MAX_WORKER, 10) === 0
|
|
14
|
+
? os.cpus().length
|
|
15
|
+
: parseInt(process.env.MAX_WORKER, 10);
|
|
16
|
+
console.log("MAXIMUM WORKER PROCESS: " + numCPUs);
|
|
17
|
+
// const numCPUs = 2;
|
|
18
|
+
let checkInit = false;
|
|
19
|
+
let mainPID = 0;
|
|
20
|
+
|
|
21
|
+
@Injectable()
|
|
22
|
+
export class AppClusterService {
|
|
23
|
+
static async clusterize(callback: Function): Promise<void> {
|
|
24
|
+
if (cluster.isMaster) {
|
|
25
|
+
console.log(`Master server started on ${process.pid}`);
|
|
26
|
+
CONST.MAIN_PROCESS = true;
|
|
27
|
+
for (let i = 0; i < numCPUs; i++) {
|
|
28
|
+
const env = { WORKER_NO: i + 1 }
|
|
29
|
+
const worker = cluster.fork(env);
|
|
30
|
+
worker.process['env'] = env
|
|
31
|
+
}
|
|
32
|
+
cluster.on("listening", (worker, address) => {
|
|
33
|
+
console.log(
|
|
34
|
+
`A worker is now connected to ${address.address}:${address.port}`
|
|
35
|
+
);
|
|
36
|
+
const http: AxiosInstance = axios.create();
|
|
37
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/user_role/reload_system`);
|
|
38
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/translate/generate`);
|
|
39
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/setting/update_version`);
|
|
40
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/health_check/init`);
|
|
41
|
+
});
|
|
42
|
+
// cluster.on("online", worker => {
|
|
43
|
+
// console.log("Yay, the worker responded after it was forked");
|
|
44
|
+
// });
|
|
45
|
+
cluster.on("exit", (worker, code, signal, ...other) => {
|
|
46
|
+
const env = worker.process['env']
|
|
47
|
+
console.log(
|
|
48
|
+
`Worker ${worker.process.pid} (${code},${signal}) died. Restarting`
|
|
49
|
+
);
|
|
50
|
+
const newWorker = cluster.fork(env);
|
|
51
|
+
newWorker.process['env'] = env
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
console.log(`Cluster server started on ${process.pid}`);
|
|
55
|
+
await callback();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|