cc-core-cli 1.0.131 → 1.0.135
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/bin/index.js +4 -4
- package/package.json +1 -1
- package/template/admin/Dockerfile +4 -7
- package/template/admin/config/service-account.json +1 -0
- package/template/admin/index.js +67 -0
- package/template/admin/next.config.js +66 -0
- package/template/admin/package.json +10 -23
- package/template/admin/pages/404.js +13 -0
- package/template/admin/pages/[...url_key].js +21 -0
- package/template/admin/pages/_app.js +16 -0
- package/template/admin/pages/_document.js +43 -0
- package/template/admin/pages/callback/[channel].js +13 -0
- package/template/admin/pages/callback.js +13 -0
- package/template/admin/pages/change_password_expired.js +13 -0
- package/template/admin/pages/check_session.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/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/register.js +13 -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/private-image-worker.js +7 -10
- package/template/admin/public/static/images/adv_settings.svg +130 -0
- package/template/admin/public/static/images/aws-cognito.png +0 -0
- package/template/admin/public/static/images/azure-ad.svg +1 -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/icon-youtub.webp +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/template-bar.svg +820 -0
- package/template/admin/public/static/images/template-bubble.png +0 -0
- package/template/admin/public/static/images/template-line.png +0 -0
- package/template/admin/public/static/images/template-mixed.jpeg +0 -0
- package/template/admin/public/static/images/template-pie.png +0 -0
- package/template/admin/public/static/images/template-polar-area.png +0 -0
- package/template/admin/public/static/images/template-radar.jpg +0 -0
- package/template/admin/public/static/images/template-radar.png +0 -0
- package/template/admin/public/static/images/template-scatter.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 +145 -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 +80 -0
- package/template/admin/public/static/styles/custom_icon.less +556 -0
- package/template/admin/public/static/styles/date_search.less +63 -0
- package/template/admin/public/static/styles/datepicker.less +323 -0
- package/template/admin/public/static/styles/detail.less +2690 -0
- package/template/admin/public/static/styles/editTable.less +23 -0
- package/template/admin/public/static/styles/entities.less +897 -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 +142 -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 +1455 -0
- package/template/admin/public/static/styles/login.less +263 -0
- package/template/admin/public/static/styles/mainheader.less +32 -0
- package/template/admin/public/static/styles/matrix.less +105 -0
- package/template/admin/public/static/styles/permission_denied.less +13 -0
- package/template/admin/public/static/styles/pipeline.less +84 -0
- package/template/admin/public/static/styles/print_template.less +730 -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 +534 -0
- package/template/admin/public/static/styles/style.less +1957 -0
- package/template/admin/public/static/styles/system.less +11 -0
- package/template/admin/public/static/styles/tree_theme_minimal.less +321 -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 +41 -0
- package/template/admin_v3/src/pages/api/database/[type]/index.ts +23 -0
- package/template/admin_v3/src/pages/api/layout_chart_widget/[name]/index.ts +18 -0
- package/template/admin_v3/src/pages/api/layout_chart_widget/compare_matrix.ts +17 -0
- package/template/admin_v3/src/pages/api/redis/[type]/[connect]/index.ts +20 -0
- package/template/admin_v3/src/pages/api/redis/custom.ts +10 -0
- package/template/{admin/src/pages/api/entity/schema/index.ts → admin_v3/src/pages/api/setting/module/[code].ts} +12 -5
- package/template/admin_v3/src/pages/api/template/[type].ts +21 -0
- package/template/{admin/src/pages/api/import_export/execute/index.ts → admin_v3/src/pages/api/template/bulk_print/[id].ts} +4 -2
- package/template/admin_v3/src/pages/api/template/print/[id]/[doc_ref].ts +11 -0
- package/template/core_v3/Dockerfile +60 -0
- package/template/core_v3/_env +12 -0
- package/template/core_v3/_gitignore +52 -0
- package/template/core_v3/_npmrc +1 -0
- package/template/core_v3/buildspec.yml +29 -0
- package/template/core_v3/docker-compose.yml +11 -0
- package/template/core_v3/jest.config.js +43 -0
- package/template/core_v3/newrelic.sh +15 -0
- package/template/core_v3/package.json +54 -0
- package/template/core_v3/post-install.js +34 -0
- package/template/core_v3/sonar-project.properties +27 -0
- package/template/core_v3/src/app.controller.ts +39 -0
- package/template/core_v3/src/app.module.ts +174 -0
- package/template/core_v3/src/app.service.ts +21 -0
- package/template/core_v3/src/app_cluster.service.ts +61 -0
- package/template/core_v3/src/core/core.controller.ts +444 -0
- package/template/core_v3/src/core/core.module.ts +90 -0
- package/template/core_v3/src/core/core.service.ts +737 -0
- package/template/core_v3/src/core/setting/_settings/about.layout.json +105 -0
- package/template/core_v3/src/core/setting/_settings/cache.layout.json +309 -0
- package/template/core_v3/src/core/setting/_settings/global_login.json +299 -0
- package/template/core_v3/src/core/setting/_settings/header_footer.json +83 -0
- package/template/core_v3/src/core/setting/_settings/import_export.layout.json +69 -0
- package/template/core_v3/src/core/setting/_settings/list_detail.json +685 -0
- package/template/core_v3/src/core/setting/_settings/logs.layout.json +39 -0
- package/template/core_v3/src/core/setting/_settings/queue.layout.json +63 -0
- package/template/core_v3/src/core/setting/_settings/schedule.layout.json +132 -0
- package/template/core_v3/src/core/setting/_settings/security.layout.json +1110 -0
- package/template/core_v3/src/core/setting/_settings/storage.layout.json +158 -0
- package/template/core_v3/src/core/setting/_settings/swagger.layout.json +128 -0
- package/template/core_v3/src/core/setting/_settings/toast.json +344 -0
- package/template/core_v3/src/main.ts +308 -0
- package/template/core_v3/src/modules/modules.ts +16 -0
- package/template/core_v3/src/private.controller.ts +18 -0
- package/template/core_v3/storage/documents/index.html +14 -0
- package/template/core_v3/storage/public/system/menu/icons/company.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/deploy.svg +2 -0
- package/template/core_v3/storage/public/system/menu/icons/entities.svg +55 -0
- package/template/core_v3/storage/public/system/menu/icons/files.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/gateway.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/import-export.svg +41 -0
- package/template/core_v3/storage/public/system/menu/icons/integration.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/master_data.svg +53 -0
- package/template/core_v3/storage/public/system/menu/icons/modules.svg +79 -0
- package/template/core_v3/storage/public/system/menu/icons/monitoring.svg +114 -0
- package/template/core_v3/storage/public/system/menu/icons/pipeline.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/provider.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/report.svg +69 -0
- package/template/core_v3/storage/public/system/menu/icons/schedule.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/security.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/storage.svg +1 -0
- package/template/core_v3/storage/public/system/menu/icons/template.svg +44 -0
- package/template/core_v3/storage/public/system/menu/icons/theme-layout.svg +1 -0
- package/template/core_v3/test/__mocks__/cc-core-lib.d.ts +161 -0
- package/template/core_v3/test/__mocks__/cc-core-lib.js +311 -0
- package/template/core_v3/test/__mocks__/pdf-img-convert.js +5 -0
- package/template/core_v3/test/jest.setup.ts +25 -0
- package/template/core_v3/tsconfig.build.json +4 -0
- package/template/core_v3/tsconfig.json +22 -0
- package/template/core_v3/tsconfig.test.json +17 -0
- package/template/core_v3/version.json +5 -0
- package/template/admin/next-env.d.ts +0 -5
- package/template/admin/postcss.config.js +0 -6
- package/template/admin/public/images/component/barchart.svg +0 -20
- package/template/admin/public/images/component/bubble_chart.svg +0 -17
- package/template/admin/public/images/component/button.svg +0 -17
- package/template/admin/public/images/component/calendar.svg +0 -63
- package/template/admin/public/images/component/checkbox.svg +0 -25
- package/template/admin/public/images/component/color_picker.svg +0 -25
- package/template/admin/public/images/component/cron_tab.svg +0 -33
- package/template/admin/public/images/component/currency.svg +0 -34
- package/template/admin/public/images/component/custom_fields.svg +0 -34
- package/template/admin/public/images/component/data_table.svg +0 -101
- package/template/admin/public/images/component/date_picker.svg +0 -47
- package/template/admin/public/images/component/donut.svg +0 -23
- package/template/admin/public/images/component/edit_table.svg +0 -96
- package/template/admin/public/images/component/entity_field.svg +0 -36
- package/template/admin/public/images/component/entity_layout.svg +0 -40
- package/template/admin/public/images/component/entity_list.svg +0 -88
- package/template/admin/public/images/component/file.svg +0 -36
- package/template/admin/public/images/component/hidden_field.svg +0 -34
- package/template/admin/public/images/component/image.svg +0 -38
- package/template/admin/public/images/component/input.svg +0 -34
- package/template/admin/public/images/component/input_icon.svg +0 -13
- package/template/admin/public/images/component/input_number.svg +0 -34
- package/template/admin/public/images/component/input_translate.svg +0 -47
- package/template/admin/public/images/component/json.svg +0 -31
- package/template/admin/public/images/component/label.svg +0 -11
- package/template/admin/public/images/component/line_chart.svg +0 -19
- package/template/admin/public/images/component/matrix_table.svg +0 -34
- package/template/admin/public/images/component/mixed_chart.svg +0 -25
- package/template/admin/public/images/component/polar_chart.svg +0 -33
- package/template/admin/public/images/component/radio.svg +0 -24
- package/template/admin/public/images/component/redar_chart.svg +0 -17
- package/template/admin/public/images/component/scatter_chart.svg +0 -25
- package/template/admin/public/images/component/select.svg +0 -34
- package/template/admin/public/images/component/summary_box.svg +0 -31
- package/template/admin/public/images/component/switch.svg +0 -12
- package/template/admin/public/images/component/translate.svg +0 -35
- package/template/admin/public/images/component/tree.svg +0 -78
- package/template/admin/public/images/default-profile.png +0 -0
- package/template/admin/public/images/empty-data.png +0 -0
- package/template/admin/public/images/file.png +0 -0
- package/template/admin/public/images/forgot-step-1.png +0 -0
- package/template/admin/public/images/forgot-step-2.png +0 -0
- package/template/admin/public/images/forgot-step-3.png +0 -0
- package/template/admin/public/images/form.png +0 -0
- package/template/admin/public/images/info-panel.png +0 -0
- package/template/admin/public/images/panel.png +0 -0
- package/template/admin/public/images/stack.png +0 -0
- package/template/admin/public/images/type-all.png +0 -0
- package/template/admin/public/images/type-boolean.png +0 -0
- package/template/admin/public/images/type-date.png +0 -0
- package/template/admin/public/images/type-file.png +0 -0
- package/template/admin/public/images/type-image.png +0 -0
- package/template/admin/public/images/type-json.png +0 -0
- package/template/admin/public/images/type-number.png +0 -0
- package/template/admin/public/images/type-options.png +0 -0
- package/template/admin/public/images/type-password.png +0 -0
- package/template/admin/public/images/type-related.png +0 -0
- package/template/admin/public/images/type-string.png +0 -0
- package/template/admin/public/images/type-trash.png +0 -0
- package/template/admin/public/images/type-unknown.png +0 -0
- package/template/admin/public/images/upload.png +0 -0
- package/template/admin/src/pages/[...url_key].tsx +0 -9
- package/template/admin/src/pages/_app.tsx +0 -22
- package/template/admin/src/pages/activate.tsx +0 -9
- package/template/admin/src/pages/api/auth/activate_account/confirm.ts +0 -13
- package/template/admin/src/pages/api/auth/activate_account/index.ts +0 -13
- package/template/admin/src/pages/api/auth/activate_account/resend.ts +0 -13
- package/template/admin/src/pages/api/auth/activate_account/set_password.ts +0 -17
- package/template/admin/src/pages/api/auth/authen/confirm.ts +0 -24
- package/template/admin/src/pages/api/auth/authen/resend.ts +0 -13
- package/template/admin/src/pages/api/auth/callback/index.ts +0 -24
- package/template/admin/src/pages/api/auth/forgot_password/confirm.ts +0 -13
- package/template/admin/src/pages/api/auth/forgot_password/index.ts +0 -13
- package/template/admin/src/pages/api/auth/forgot_password/resend.ts +0 -13
- package/template/admin/src/pages/api/auth/forgot_password/reset.ts +0 -17
- package/template/admin/src/pages/api/auth/login.ts +0 -24
- package/template/admin/src/pages/api/auth/logout.ts +0 -30
- package/template/admin/src/pages/api/custom/[...path].ts +0 -16
- package/template/admin/src/pages/api/download.ts +0 -79
- package/template/admin/src/pages/api/entity/[entity]/[id].ts +0 -46
- package/template/admin/src/pages/api/entity/[entity]/delete.ts +0 -18
- package/template/admin/src/pages/api/entity/[entity]/find.ts +0 -17
- package/template/admin/src/pages/api/entity/[entity]/index.ts +0 -30
- package/template/admin/src/pages/api/entity/[entity]/update.ts +0 -18
- package/template/admin/src/pages/api/entity/approve/[entity]/[id].ts +0 -19
- package/template/admin/src/pages/api/entity/schema/[entity]/index.ts +0 -27
- package/template/admin/src/pages/api/entity/schema/[entity]/relate.ts +0 -16
- package/template/admin/src/pages/api/import_export/example/index.ts +0 -13
- package/template/admin/src/pages/api/import_export/export/index.ts +0 -13
- package/template/admin/src/pages/api/import_export/import/index.ts +0 -13
- package/template/admin/src/pages/api/import_export/progresses/index.ts +0 -13
- package/template/admin/src/pages/api/import_export/verify_progress/index.ts +0 -13
- package/template/admin/src/pages/api/language/set.ts +0 -15
- package/template/admin/src/pages/api/media/private.ts +0 -49
- package/template/admin/src/pages/api/queue/[queue]/count.ts +0 -17
- package/template/admin/src/pages/api/queue/[queue]/flush.ts +0 -17
- package/template/admin/src/pages/api/queue/[queue]/flushall.ts +0 -16
- package/template/admin/src/pages/api/queue/[queue]/index.ts +0 -20
- package/template/admin/src/pages/api/queue/index.ts +0 -13
- package/template/admin/src/pages/api/redis/index.ts +0 -0
- package/template/admin/src/pages/api/setting/[code].ts +0 -21
- package/template/admin/src/pages/api/system/config.ts +0 -13
- package/template/admin/src/pages/api/system/data_source/[code].ts +0 -17
- package/template/admin/src/pages/api/system/endpoint/[method].ts +0 -17
- package/template/admin/src/pages/api/system/queue.ts +0 -13
- package/template/admin/src/pages/api/system/role.ts +0 -13
- package/template/admin/src/pages/api/user/change_password.ts +0 -13
- package/template/admin/src/pages/api/user/filter/index.ts +0 -13
- package/template/admin/src/pages/api/user/me.ts +0 -24
- package/template/admin/src/pages/api/user/register.ts +0 -13
- package/template/admin/src/pages/callback/[channel].tsx +0 -9
- package/template/admin/src/pages/entity/[entity]/[layout]/[id].tsx +0 -17
- package/template/admin/src/pages/entity/[entity]/[layout]/index.tsx +0 -19
- package/template/admin/src/pages/forgot_password.tsx +0 -9
- package/template/admin/src/pages/index.tsx +0 -7
- package/template/admin/src/pages/login.tsx +0 -9
- package/template/admin/src/pages/profile.tsx +0 -9
- package/template/admin/src/pages/register.tsx +0 -9
- package/template/admin/src/pages/setting/entities/[key].tsx +0 -10
- package/template/admin/src/pages/setting/entities/index.tsx +0 -10
- package/template/admin/src/pages/setting/module/[module]/[layout].tsx +0 -16
- package/template/admin/src/pages/setting/modules.tsx +0 -10
- package/template/admin/src/styles/global.css +0 -101
- package/template/admin/src/styles/workflow.css +0 -40
- package/template/admin/src/utils/color.ts +0 -88
- package/template/admin/tailwind.config.js +0 -57
- package/template/admin/tsconfig.json +0 -36
- /package/template/admin/public/{images → static/images}/split.svg +0 -0
- /package/template/admin/{src/pages/api/redis/[connect]/index.ts → public/static/styles/custom.less} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getHeadersFromRequest } from '@shopstack/cs-admin-lib/server';
|
|
2
|
+
import { requestBulkPrint } from '@shopstack/cs-admin-lib/server';
|
|
2
3
|
import { NextApiRequest, NextApiResponse } from "next";
|
|
3
4
|
|
|
4
5
|
export default async (req: NextApiRequest, res: NextApiResponse) => {
|
|
5
6
|
if (req.method === 'POST') {
|
|
7
|
+
const { id } = req.query as { id: string }
|
|
6
8
|
try {
|
|
7
|
-
const result = await
|
|
9
|
+
const result = await requestBulkPrint(id, req.body, getHeadersFromRequest(req))
|
|
8
10
|
return res.status(200).json(result)
|
|
9
11
|
} catch (e) {
|
|
10
12
|
return res.status(e.status).json(e.error)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { requestPrint } from "@shopstack/cs-admin-lib/server";
|
|
2
|
+
import { getHeadersFromRequest } from "@shopstack/cs-admin-lib/server";
|
|
3
|
+
import { NextApiRequest, NextApiResponse } from "next";
|
|
4
|
+
|
|
5
|
+
export default async (req: NextApiRequest, res: NextApiResponse) => {
|
|
6
|
+
if (req.method === 'GET') {
|
|
7
|
+
const { id, doc_ref } = req.query as { id: string, doc_ref: string }
|
|
8
|
+
const result = await requestPrint(id, doc_ref, getHeadersFromRequest(req))
|
|
9
|
+
return res.status(200).json(result)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
FROM node:22.14.0-alpine3.20 as development
|
|
2
|
+
|
|
3
|
+
RUN apk update
|
|
4
|
+
RUN apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev
|
|
5
|
+
RUN apk add --update --repository http://dl-3.alpinelinux.org/alpine/edge/testing libmount ttf-dejavu ttf-droid ttf-freefont ttf-liberation fontconfig
|
|
6
|
+
|
|
7
|
+
WORKDIR /usr/src/app
|
|
8
|
+
COPY package.json .
|
|
9
|
+
COPY .npmrc .
|
|
10
|
+
COPY . .
|
|
11
|
+
RUN npm install -g @nestjs/cli && npm install
|
|
12
|
+
RUN npm run build
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
FROM node:22.14.0-alpine3.20 as production
|
|
17
|
+
|
|
18
|
+
ARG NODE_ENV=production
|
|
19
|
+
ENV NODE_ENV=${NODE_ENV}\
|
|
20
|
+
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
|
|
21
|
+
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
|
22
|
+
# Install latest chrome dev package and fonts to support major charsets (Chinese, Japanese, Arabic, Hebrew, Thai and a few others)
|
|
23
|
+
# Note: this installs the necessary libs to make the bundled version of Chromium that Puppeteer
|
|
24
|
+
# installs, work.
|
|
25
|
+
RUN apk update && apk add --no-cache chromium
|
|
26
|
+
RUN apk update && apk upgrade -U -a --ignore alpine-baselayout
|
|
27
|
+
RUN apk add --no-cache build-base g++ cairo-dev jpeg-dev pango-dev giflib-dev
|
|
28
|
+
RUN apk add --update --repository http://dl-3.alpinelinux.org/alpine/edge/testing libmount ttf-dejavu ttf-droid ttf-freefont ttf-liberation fontconfig wget
|
|
29
|
+
RUN mkdir -p /usr/share/fonts/truetype/sarabun
|
|
30
|
+
|
|
31
|
+
# Download the Sarabun fonts and install them
|
|
32
|
+
RUN wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Regular.ttf \
|
|
33
|
+
https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Regular.ttf && \
|
|
34
|
+
wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Bold.ttf \
|
|
35
|
+
https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Bold.ttf && \
|
|
36
|
+
wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-Italic.ttf \
|
|
37
|
+
https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-Italic.ttf && \
|
|
38
|
+
wget -q -O /usr/share/fonts/truetype/sarabun/Sarabun-BoldItalic.ttf \
|
|
39
|
+
https://github.com/google/fonts/raw/main/ofl/sarabun/Sarabun-BoldItalic.ttf
|
|
40
|
+
|
|
41
|
+
# Update font cache
|
|
42
|
+
RUN fc-cache -f -v
|
|
43
|
+
|
|
44
|
+
# Verify if Sarabun font was installed (for debugging)
|
|
45
|
+
RUN fc-list | grep "Sarabun"
|
|
46
|
+
|
|
47
|
+
WORKDIR /usr/src/app
|
|
48
|
+
COPY package.json .
|
|
49
|
+
COPY .npmrc .
|
|
50
|
+
COPY . .
|
|
51
|
+
RUN npm install --only=production
|
|
52
|
+
COPY --from=development /usr/src/app/dist ./dist
|
|
53
|
+
|
|
54
|
+
RUN find /usr/local/lib/node_modules -name "yarn.lock" -type f -delete
|
|
55
|
+
RUN find /usr/local/lib/node_modules -name "package-lock.json" -type f -delete
|
|
56
|
+
|
|
57
|
+
RUN find /usr/src/app/node_modules -name "yarn.lock" -type f -delete
|
|
58
|
+
RUN find /usr/src/app/node_modules -name "package-lock.json" -type f -delete
|
|
59
|
+
|
|
60
|
+
CMD ["npm", "run", "start:prod"]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
NODE_ENV=dev
|
|
2
|
+
PORT=3000
|
|
3
|
+
LOOP_BACK_IP=0.0.0.0
|
|
4
|
+
MONGODB_URI=mongodb://{username}:{password}@127.0.0.1:27017/dev_db?authSource=admin
|
|
5
|
+
SESSION_REDIS_URL=redis://127.0.0.1:6379/1
|
|
6
|
+
CACHE_REDIS_URL=redis://127.0.0.1:6379/1
|
|
7
|
+
QUEUE_REDIS_URL=redis://127.0.0.1:6379/2
|
|
8
|
+
QUEUE_CONCURRENCY=1
|
|
9
|
+
MAX_WORKER=1
|
|
10
|
+
CUSTOM_MODULES=
|
|
11
|
+
DEFAULT_API_KEY=0939f325-e24f-4de3-8796-4d5e7243849c
|
|
12
|
+
DEFAULT_SECRET_KEY=ogi6xld0kftb5yvm6t17x2a6bmyipnfja6s7v5v2
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# These are some examples of commonly ignored file patterns.
|
|
2
|
+
# You should customize this list as applicable to your project.
|
|
3
|
+
# Learn more about .gitignore:
|
|
4
|
+
# https://www.atlassian.com/git/tutorials/saving-changes/gitignore
|
|
5
|
+
|
|
6
|
+
# Node artifact files
|
|
7
|
+
node_modules/
|
|
8
|
+
dist/
|
|
9
|
+
tmp/
|
|
10
|
+
temp/
|
|
11
|
+
lib/
|
|
12
|
+
storage/*
|
|
13
|
+
!storage/public/
|
|
14
|
+
storage/public/*
|
|
15
|
+
!storage/public/system/
|
|
16
|
+
storage/public/system/*
|
|
17
|
+
!storage/public/system/menu/
|
|
18
|
+
storage/public/system/menu/*
|
|
19
|
+
!storage/public/system/menu/icons/
|
|
20
|
+
!storage/documents/
|
|
21
|
+
|
|
22
|
+
# Generated by MacOS
|
|
23
|
+
.DS_Store
|
|
24
|
+
|
|
25
|
+
# Generated by Windows
|
|
26
|
+
Thumbs.db
|
|
27
|
+
|
|
28
|
+
# Applications
|
|
29
|
+
*.app
|
|
30
|
+
*.exe
|
|
31
|
+
*.war
|
|
32
|
+
|
|
33
|
+
# Large media files
|
|
34
|
+
*.mp4
|
|
35
|
+
*.tiff
|
|
36
|
+
*.avi
|
|
37
|
+
*.flv
|
|
38
|
+
*.mov
|
|
39
|
+
*.wmv
|
|
40
|
+
|
|
41
|
+
# Environment file
|
|
42
|
+
.env
|
|
43
|
+
|
|
44
|
+
# Log fiels
|
|
45
|
+
*.log
|
|
46
|
+
|
|
47
|
+
# Package lock file
|
|
48
|
+
package-lock.json
|
|
49
|
+
|
|
50
|
+
# Test files
|
|
51
|
+
.scannerwork/
|
|
52
|
+
coverage/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//registry.npmjs.org/:_authToken={{SHOPSTACK_TOKEN}}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
version: 0.2
|
|
2
|
+
|
|
3
|
+
phases:
|
|
4
|
+
pre_build:
|
|
5
|
+
commands:
|
|
6
|
+
- echo Logging in to Amazon ECR...
|
|
7
|
+
- $(aws ecr get-login --no-include-email --region ap-southeast-1)
|
|
8
|
+
- REPOSITORY_URI=$ECR_URI
|
|
9
|
+
- COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7)
|
|
10
|
+
- IMAGE_TAG=${COMMIT_HASH:=latest}
|
|
11
|
+
build:
|
|
12
|
+
commands:
|
|
13
|
+
- echo logging in dockerhub...
|
|
14
|
+
- docker login -u $dockeruser -p $dockerpassword
|
|
15
|
+
- echo Build started on `date`
|
|
16
|
+
- echo Building the Docker image...
|
|
17
|
+
- sed -i "s|{{SHOPSTACK_TOKEN}}|$SHOPSATCK_TOKEN|g" .npmrc
|
|
18
|
+
- cat .npmrc
|
|
19
|
+
- docker build --no-cache -t $REPOSITORY_URI:latest --build-arg commit_hash=$COMMIT_HASH .
|
|
20
|
+
- docker tag $REPOSITORY_URI:latest $REPOSITORY_URI:$IMAGE_TAG
|
|
21
|
+
post_build:
|
|
22
|
+
commands:
|
|
23
|
+
- echo Build completed on `date`
|
|
24
|
+
- echo Pushing the Docker image...
|
|
25
|
+
- docker push $REPOSITORY_URI:$IMAGE_TAG
|
|
26
|
+
- echo Writing image definitions file...
|
|
27
|
+
- printf '[{"name":"%s","imageUri":"%s"}]' $IMAGE_CONTAINER_NAME $REPOSITORY_URI:$IMAGE_TAG > imagedefinitions.json
|
|
28
|
+
artifacts:
|
|
29
|
+
files: imagedefinitions.json
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
preset: 'ts-jest',
|
|
3
|
+
testEnvironment: 'node',
|
|
4
|
+
roots: ['<rootDir>/src/modules'],
|
|
5
|
+
testRegex: '.*\\.spec\\.ts$',
|
|
6
|
+
transform: {
|
|
7
|
+
'^.+\\.(t|j)s$': 'ts-jest'
|
|
8
|
+
},
|
|
9
|
+
transformIgnorePatterns: [
|
|
10
|
+
'node_modules/(?!(@shopstack/cc-core-lib)/.*)',
|
|
11
|
+
],
|
|
12
|
+
moduleNameMapper: {
|
|
13
|
+
'^@/(.*)$': '<rootDir>/src/$1',
|
|
14
|
+
'^(\\.{1,2}/.*)\\.js$': '$1',
|
|
15
|
+
'pdf-img-convert': '<rootDir>/test/__mocks__/pdf-img-convert.js',
|
|
16
|
+
'@shopstack/cc-core-lib/core': '<rootDir>/test/__mocks__/cc-core-lib.js'
|
|
17
|
+
},
|
|
18
|
+
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts'],
|
|
19
|
+
collectCoverageFrom: [
|
|
20
|
+
'src/**/*.ts',
|
|
21
|
+
'!src/**/*.spec.ts',
|
|
22
|
+
'!src/**/*.module.ts',
|
|
23
|
+
'!src/main.ts',
|
|
24
|
+
'!src/**/index.ts',
|
|
25
|
+
'!src/modules/aws-s3/**/*',
|
|
26
|
+
'!src/**/*.enum.ts',
|
|
27
|
+
'!src/**/*.layout.ts',
|
|
28
|
+
'!src/**/*.workflow.ts',
|
|
29
|
+
'!src/**/*.custom_action.ts',
|
|
30
|
+
'!src/modules/modules.ts'
|
|
31
|
+
],
|
|
32
|
+
coverageDirectory: './coverage',
|
|
33
|
+
coverageReporters: ['lcov', 'text', 'text-summary'],
|
|
34
|
+
moduleFileExtensions: ['js', 'json', 'ts'],
|
|
35
|
+
globals: {
|
|
36
|
+
'ts-jest': {
|
|
37
|
+
tsconfig: 'tsconfig.test.json'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
verbose: true,
|
|
41
|
+
testTimeout: 30000,
|
|
42
|
+
moduleDirectories: ['node_modules', 'src/__tests__/mocks', 'test/__mocks__']
|
|
43
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
export NEW_RELIC_NO_CONFIG_FILE=true
|
|
4
|
+
|
|
5
|
+
if [ -z "$NEW_RELIC_LICENSE_KEY" ] || [ -z "$NEW_RELIC_APP_NAME" ]; then
|
|
6
|
+
export NEW_RELIC_ENABLED=false
|
|
7
|
+
echo "Don't enable newrelic because some variable is not set"
|
|
8
|
+
return 0
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
export NEW_RELIC_ENABLED=true
|
|
12
|
+
export NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true
|
|
13
|
+
export NEW_RELIC_LOG=stdout
|
|
14
|
+
|
|
15
|
+
echo "Enable newrelic"
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cs-core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"author": "",
|
|
6
|
+
"private": true,
|
|
7
|
+
"license": "UNLICENSED",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"prebuild": "rimraf dist",
|
|
10
|
+
"postinstall": "node post-install.js",
|
|
11
|
+
"build": "source ./newrelic.sh && nest build",
|
|
12
|
+
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
13
|
+
"start": "nest start",
|
|
14
|
+
"start:dev": "source ./newrelic.sh && nest start --watch",
|
|
15
|
+
"start:debug": "nest start --debug --watch",
|
|
16
|
+
"start:prod": "source ./newrelic.sh && node dist/src/main",
|
|
17
|
+
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
18
|
+
"test": "jest",
|
|
19
|
+
"test:watch": "jest --watch",
|
|
20
|
+
"test:cov": "jest --coverage",
|
|
21
|
+
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
22
|
+
"sonar": "node -r dotenv/config ./node_modules/.bin/jest --coverage && node -r dotenv/config ./node_modules/.bin/sonar-scanner",
|
|
23
|
+
"sonar:coverage": "jest --coverage --coverageReporters=lcov --coverageDirectory=coverage"
|
|
24
|
+
},
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@shopstack/cs-core-lib": "^3.0.0",
|
|
27
|
+
"reflect-metadata": "^0.1.14"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@nestjs/testing": "^10.3.5",
|
|
31
|
+
"@types/bcrypt": "^5.0.2",
|
|
32
|
+
"@types/bull": "^3.14.4",
|
|
33
|
+
"@types/chroma-js": "^2.4.0",
|
|
34
|
+
"@types/express": "^4.17.8",
|
|
35
|
+
"@types/jest": "^29.5.14",
|
|
36
|
+
"@types/node": "^13.13.27",
|
|
37
|
+
"@types/numeral": "^2.0.2",
|
|
38
|
+
"@types/supertest": "^2.0.10",
|
|
39
|
+
"@typescript-eslint/eslint-plugin": "^6.1.0",
|
|
40
|
+
"@typescript-eslint/parser": "^6.1.0",
|
|
41
|
+
"eslint": "^8.44.0",
|
|
42
|
+
"eslint-config-prettier": "^6.13.0",
|
|
43
|
+
"eslint-plugin-import": "^2.22.1",
|
|
44
|
+
"jest": "^29.7.0",
|
|
45
|
+
"prettier": "^1.19.1",
|
|
46
|
+
"sonarqube-scanner": "^4.3.0",
|
|
47
|
+
"supertest": "^4.0.2",
|
|
48
|
+
"ts-jest": "^29.3.4",
|
|
49
|
+
"ts-loader": "^6.2.1",
|
|
50
|
+
"ts-node": "^10.9.1",
|
|
51
|
+
"tsconfig-paths": "^3.9.0",
|
|
52
|
+
"typescript": "^5.8.2"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const fs = require("fs-extra");
|
|
2
|
+
const ora = require("ora");
|
|
3
|
+
const { exec } = require("child_process");
|
|
4
|
+
|
|
5
|
+
const mainPath = "./src/modules";
|
|
6
|
+
const moduleDependencies = [];
|
|
7
|
+
const spinner = ora("Checking module dependencies").start();
|
|
8
|
+
|
|
9
|
+
const modules = fs.readdirSync(mainPath);
|
|
10
|
+
for (const folder of modules) {
|
|
11
|
+
if (!fs.lstatSync(`${mainPath}/${folder}`).isDirectory()) continue;
|
|
12
|
+
if (!fs.existsSync(`${mainPath}/${folder}/module.json`)) continue;
|
|
13
|
+
|
|
14
|
+
const moduleConfig = require(`${mainPath}/${folder}/module.json`);
|
|
15
|
+
if (!moduleConfig.dependencies) continue;
|
|
16
|
+
|
|
17
|
+
for (const lib in moduleConfig.dependencies) {
|
|
18
|
+
moduleDependencies.push(`${lib}@${moduleConfig.dependencies[lib]}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
spinner.succeed("Checking module depencies done.");
|
|
23
|
+
|
|
24
|
+
if (!moduleDependencies.length) return true;
|
|
25
|
+
|
|
26
|
+
spinner.start(`Install module dependencies`);
|
|
27
|
+
|
|
28
|
+
exec(`npm install --no-save ${moduleDependencies.join(" ")}`, err => {
|
|
29
|
+
if (err) {
|
|
30
|
+
return spinner.fail(`Install module dependencies failed ${err.message}`);
|
|
31
|
+
}
|
|
32
|
+
spinner.succeed("Install module dependencies done.");
|
|
33
|
+
return true;
|
|
34
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Project identification
|
|
2
|
+
sonar.projectKey=demo-points-core
|
|
3
|
+
sonar.projectName=Demo Points Core
|
|
4
|
+
sonar.projectVersion=1.0.0
|
|
5
|
+
|
|
6
|
+
# Source code location
|
|
7
|
+
sonar.sources=src
|
|
8
|
+
sonar.tests=src
|
|
9
|
+
sonar.test.inclusions=**/*.spec.ts
|
|
10
|
+
sonar.exclusions=**/*.layout.ts,**/*.workflow.ts,**/*.custom_action.ts,**/*.module.ts,**/main.ts,**/index.ts,**/aws-s3/**,**/*.enum.ts
|
|
11
|
+
|
|
12
|
+
# Language
|
|
13
|
+
sonar.language=ts
|
|
14
|
+
sonar.typescript.lcov.reportPaths=coverage/lcov.info
|
|
15
|
+
|
|
16
|
+
# Encoding of the source files
|
|
17
|
+
sonar.sourceEncoding=UTF-8
|
|
18
|
+
|
|
19
|
+
# Coverage report path
|
|
20
|
+
sonar.javascript.lcov.reportPaths=coverage/lcov.info
|
|
21
|
+
|
|
22
|
+
# SonarCloud configuration
|
|
23
|
+
sonar.host.url=https://sonarcloud.io
|
|
24
|
+
sonar.organization=your-organization-key # You need to replace this with your organization key
|
|
25
|
+
|
|
26
|
+
# Authentication token should be provided via environment variable SONAR_TOKEN
|
|
27
|
+
# DO NOT add the token directly in this file for security reasons
|
|
@@ -0,0 +1,39 @@
|
|
|
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 "@shopstack/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/:entity")
|
|
24
|
+
listAllRoutes(@Param() params: any): any {
|
|
25
|
+
const { method, entity } = params;
|
|
26
|
+
if (_.isEmpty(method)) {
|
|
27
|
+
return [];
|
|
28
|
+
}
|
|
29
|
+
const result = CONST.ENDPOINT_PATHS.filter(
|
|
30
|
+
p => p.method.toLowerCase() === method.toLowerCase()
|
|
31
|
+
);
|
|
32
|
+
if (_.isEmpty(entity) || entity === "undefined") {
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
return result.filter(
|
|
36
|
+
r => r.path.indexOf(entity) === 0 || r.path.indexOf(":entity") === 0
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
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
|
+
|
|
12
|
+
import { StoragePrivateController } from "./private.controller";
|
|
13
|
+
import { AppController } from "./app.controller";
|
|
14
|
+
import { AppService } from "./app.service";
|
|
15
|
+
import { ScheduleModule } from "@nestjs/schedule";
|
|
16
|
+
|
|
17
|
+
import { CUSTOM_MODULES } from "./modules/modules";
|
|
18
|
+
// import { CoreModule } from "./core/core.module";
|
|
19
|
+
import {
|
|
20
|
+
UserModule,
|
|
21
|
+
AuthModule,
|
|
22
|
+
EntitiesModule,
|
|
23
|
+
ScheduleActionModule,
|
|
24
|
+
SettingModule,
|
|
25
|
+
TemplateModule,
|
|
26
|
+
QueueModule,
|
|
27
|
+
TranslateModule,
|
|
28
|
+
AttachmentModule,
|
|
29
|
+
NotificationModule,
|
|
30
|
+
RedisModule,
|
|
31
|
+
MailSettingModule,
|
|
32
|
+
SmsModule,
|
|
33
|
+
ShortlyModule,
|
|
34
|
+
LayoutModule,
|
|
35
|
+
CompanyModule,
|
|
36
|
+
LanguageModule,
|
|
37
|
+
ImportExportModule,
|
|
38
|
+
CommentDataModule,
|
|
39
|
+
DatabaseModule,
|
|
40
|
+
DeployModule,
|
|
41
|
+
CustomFunctionModule,
|
|
42
|
+
CacheModule,
|
|
43
|
+
PipelineModule,
|
|
44
|
+
RewriteUrlModule
|
|
45
|
+
} from '@shopstack/cc-core-lib/core'
|
|
46
|
+
|
|
47
|
+
import { CoreModule } from './core/core.module'
|
|
48
|
+
|
|
49
|
+
// const { CoreModule } = core
|
|
50
|
+
|
|
51
|
+
dotenv.config();
|
|
52
|
+
|
|
53
|
+
const SPECIFY_CUSTOM_MODULES =
|
|
54
|
+
process.env.CUSTOM_MODULES === "" || process.env.CUSTOM_MODULES === undefined
|
|
55
|
+
? []
|
|
56
|
+
: process.env.CUSTOM_MODULES.split(",");
|
|
57
|
+
const RUN_CUSTOM_MODULES =
|
|
58
|
+
SPECIFY_CUSTOM_MODULES.length === 0
|
|
59
|
+
? CUSTOM_MODULES.map(c => c.module)
|
|
60
|
+
: CUSTOM_MODULES.filter(c =>
|
|
61
|
+
SPECIFY_CUSTOM_MODULES.includes(c.module.name)
|
|
62
|
+
).map(c => c.module);
|
|
63
|
+
|
|
64
|
+
const mongoConfig = {};
|
|
65
|
+
|
|
66
|
+
if (+process.env.MONGODB_MIN_POOL_SIZE) {
|
|
67
|
+
mongoConfig["minPoolSize"] = +process.env.MONGODB_MIN_POOL_SIZE;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (+process.env.MONGODB_MAX_POOL_SIZE) {
|
|
71
|
+
mongoConfig["maxPoolSize"] = +process.env.MONGODB_MAX_POOL_SIZE;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@Module({
|
|
75
|
+
imports: [
|
|
76
|
+
// MongooseModule.forRootAsync({
|
|
77
|
+
// useFactory: async () => ({
|
|
78
|
+
// uri: process.env.MONGODB_URI,
|
|
79
|
+
// useNewUrlParser: true,
|
|
80
|
+
// useFindAndModify: false
|
|
81
|
+
// })
|
|
82
|
+
// }),
|
|
83
|
+
MongooseModule.forRoot(process.env.MONGODB_URI, mongoConfig),
|
|
84
|
+
// Register the ClsModule,
|
|
85
|
+
ClsModule.forRoot({
|
|
86
|
+
middleware: {
|
|
87
|
+
// automatically mount the
|
|
88
|
+
// ClsMiddleware for all routes
|
|
89
|
+
mount: true,
|
|
90
|
+
// and use the setup method to
|
|
91
|
+
// provide default store values.
|
|
92
|
+
setup: (cls, req) => {
|
|
93
|
+
cls.set("request", {
|
|
94
|
+
api_key: _.get(req, "api_key", {}),
|
|
95
|
+
profile: _.get(req, "profile", {}),
|
|
96
|
+
permissions: _.get(req, "permissions", []),
|
|
97
|
+
headers: _.get(req, "headers", {}),
|
|
98
|
+
ip: _.get(req, "ip"),
|
|
99
|
+
protocol: _.get(req, "protocol"),
|
|
100
|
+
hostname: _.get(req, "hostname"),
|
|
101
|
+
url: _.get(req, "url"),
|
|
102
|
+
method: _.get(req, "method"),
|
|
103
|
+
body: _.get(req, "body", {}),
|
|
104
|
+
action_profile: _.get(req, "action_profile", {}),
|
|
105
|
+
permisson_entities: _.get(req, "permisson_entities", {}),
|
|
106
|
+
permisson_tab: _.get(req, "permisson_tab", {})
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
interceptor: {
|
|
111
|
+
mount: true,
|
|
112
|
+
setup: (cls, ctx) => {
|
|
113
|
+
const req = ctx.switchToHttp().getRequest();
|
|
114
|
+
cls.set("request", {
|
|
115
|
+
api_key: _.get(req, "api_key", {}),
|
|
116
|
+
profile: _.get(req, "profile", {}),
|
|
117
|
+
permissions: _.get(req, "permissions", []),
|
|
118
|
+
roles: _.get(req, "roles", []),
|
|
119
|
+
headers: _.get(req, "headers", {}),
|
|
120
|
+
// ip: req.connection.remoteAddress,
|
|
121
|
+
ip:
|
|
122
|
+
_.get(req, "socket.remoteAddress") ||
|
|
123
|
+
_.get(req, "connection.remoteAddress"),
|
|
124
|
+
protocol: _.get(req, "protocol"),
|
|
125
|
+
hostname: _.get(req, "hostname"),
|
|
126
|
+
url: _.get(req, "url"),
|
|
127
|
+
method: _.get(req, "method"),
|
|
128
|
+
body: _.get(req, "body", {}),
|
|
129
|
+
action_profile: _.get(req, "action_profile", {}),
|
|
130
|
+
permisson_entities: _.get(req, "permisson_entities", {}),
|
|
131
|
+
permisson_tab: _.get(req, "permisson_tab", {})
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}),
|
|
136
|
+
|
|
137
|
+
EntitiesModule,
|
|
138
|
+
NestEmitterModule.forRoot(new EventEmitter()),
|
|
139
|
+
ScheduleModule.forRoot(),
|
|
140
|
+
AuthModule,
|
|
141
|
+
SettingModule,
|
|
142
|
+
QueueModule,
|
|
143
|
+
RedisModule,
|
|
144
|
+
DatabaseModule,
|
|
145
|
+
CacheModule,
|
|
146
|
+
|
|
147
|
+
CompanyModule,
|
|
148
|
+
|
|
149
|
+
AttachmentModule,
|
|
150
|
+
CommentDataModule,
|
|
151
|
+
CustomFunctionModule,
|
|
152
|
+
DeployModule,
|
|
153
|
+
ImportExportModule,
|
|
154
|
+
LanguageModule,
|
|
155
|
+
MailSettingModule,
|
|
156
|
+
ScheduleActionModule,
|
|
157
|
+
SmsModule,
|
|
158
|
+
TemplateModule,
|
|
159
|
+
TranslateModule,
|
|
160
|
+
NotificationModule,
|
|
161
|
+
ShortlyModule,
|
|
162
|
+
UserModule,
|
|
163
|
+
PipelineModule,
|
|
164
|
+
LayoutModule,
|
|
165
|
+
RewriteUrlModule,
|
|
166
|
+
|
|
167
|
+
// ...RUN_CUSTOM_MODULES,
|
|
168
|
+
|
|
169
|
+
CoreModule
|
|
170
|
+
],
|
|
171
|
+
controllers: [AppController, StoragePrivateController],
|
|
172
|
+
providers: [AppService]
|
|
173
|
+
})
|
|
174
|
+
export class AppModule { }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Injectable, Logger } from "@nestjs/common";
|
|
2
|
+
import * as os from "os";
|
|
3
|
+
import { CONST } from "@shopstack/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,61 @@
|
|
|
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 '@shopstack/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
|
+
if (worker.process["env"].WORKER_NO == "1") {
|
|
38
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/entities/init_data`);
|
|
39
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/setting/update_version`);
|
|
40
|
+
}
|
|
41
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/user_role/reload_system`);
|
|
42
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/translate/generate`);
|
|
43
|
+
http.get(`${CONST.INTERNAL_DOMAIN}/health_check/init`);
|
|
44
|
+
});
|
|
45
|
+
// cluster.on("online", worker => {
|
|
46
|
+
// console.log("Yay, the worker responded after it was forked");
|
|
47
|
+
// });
|
|
48
|
+
cluster.on("exit", (worker, code, signal, ...other) => {
|
|
49
|
+
const env = worker.process['env']
|
|
50
|
+
console.log(
|
|
51
|
+
`Worker ${worker.process.pid} (${code},${signal}) died. Restarting`
|
|
52
|
+
);
|
|
53
|
+
const newWorker = cluster.fork(env);
|
|
54
|
+
newWorker.process['env'] = env
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
console.log(`Cluster server started on ${process.pid}`);
|
|
58
|
+
await callback();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|