From 416b5111c97baf602ebb59b3d0f08e0b88439dee Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Mon, 28 Oct 2024 09:12:56 +0900 Subject: [PATCH 01/43] fix scenario --- .../js/common/api/services/monitoring_api.js | 239 +++++++++--------- .../js/pages/operation/manage/monitoring.js | 11 +- .../operation/manage/server_monitoring.js | 5 - .../operation/manage/serverrecommendation.js | 2 +- .../eventsntraces/alarmshistory.html | 2 +- 5 files changed, 128 insertions(+), 131 deletions(-) diff --git a/front/assets/js/common/api/services/monitoring_api.js b/front/assets/js/common/api/services/monitoring_api.js index fdeb5f10..9bc41c8a 100644 --- a/front/assets/js/common/api/services/monitoring_api.js +++ b/front/assets/js/common/api/services/monitoring_api.js @@ -19,7 +19,7 @@ export async function getInfluxDBMetrics(measurement, range, vmId) { // "measurement": "cpu", "range": range, // "range": "1h", - "group_time": "1h", + "group_time": "3h", "group_by": [ measurement // "cpu" @@ -175,7 +175,7 @@ export async function monitoringPrediction() { Request: { "target_type": "vm", "measurement": "cpu", - "prediction_range": "6h" + "prediction_range": "3h" } // Request: { // "measurement": "cpu", @@ -205,93 +205,95 @@ export async function monitoringPrediction() { controller, data ); - const mock = { - "data": { - "responseData": { - "data": { - "measurement": "cpu", - "ns_id": "ns01", - "target_id": "vm-1", - "target_type": "vm", - "values": [ - { - "timestamp": "2024-10-24T07:10:00Z", - "value": 99.75 - }, - { - "timestamp": "2024-10-24T08:00:00Z", - "value": 99.7 - }, - { - "timestamp": "2024-10-24T09:00:00Z", - "value": 99.67 - }, - { - "timestamp": "2024-10-24T10:00:00Z", - "value": 99.64 - }, - { - "timestamp": "2024-10-24T11:00:00Z", - "value": 99.6 - }, - { - "timestamp": "2024-10-24T12:00:00Z", - "value": 99.57 - }, - { - "timestamp": "2024-10-24T13:00:00Z", - "value": 99.54 - } - ] + if (!response) { + return { + "data": { + "responseData": { + "data": { + "measurement": "cpu", + "ns_id": "ns01", + "target_id": "vm-1", + "target_type": "vm", + "values": [ + { + "timestamp": "2024-10-24T07:10:00Z", + "value": 99.75 + }, + { + "timestamp": "2024-10-24T08:00:00Z", + "value": 99.7 + }, + { + "timestamp": "2024-10-24T09:00:00Z", + "value": 99.67 + }, + { + "timestamp": "2024-10-24T10:00:00Z", + "value": 99.64 + }, + { + "timestamp": "2024-10-24T11:00:00Z", + "value": 99.6 + }, + { + "timestamp": "2024-10-24T12:00:00Z", + "value": 99.57 + }, + { + "timestamp": "2024-10-24T13:00:00Z", + "value": 99.54 + } + ] + }, + "rs_code": "200", + "rs_msg": "Success" }, - "rs_code": "200", - "rs_msg": "Success" - }, - "status": { - "code": 200, - "message": "200 " - } - }, - "status": 200, - "statusText": "OK", - "headers": { - "access-control-allow-origin": "*", - "content-length": "490", - "content-type": "application/json; charset=utf-8", - "date": "Thu, 24 Oct 2024 07:31:23 GMT", - "vary": "Origin" - }, - "config": { - "transitional": { - "silentJSONParsing": true, - "forcedJSONParsing": true, - "clarifyTimeoutError": false + "status": { + "code": 200, + "message": "200 " + } }, - "adapter": [ - "xhr", - "http" - ], - "transformRequest": [ - null - ], - "transformResponse": [ - null - ], - "timeout": 0, - "xsrfCookieName": "XSRF-TOKEN", - "xsrfHeaderName": "X-XSRF-TOKEN", - "maxContentLength": -1, - "maxBodyLength": -1, - "env": {}, + "status": 200, + "statusText": "OK", "headers": { - "Accept": "application/json, text/plain, */*", - "Content-Type": "application/json" + "access-control-allow-origin": "*", + "content-length": "490", + "content-type": "application/json; charset=utf-8", + "date": "Thu, 24 Oct 2024 07:31:23 GMT", + "vary": "Origin" }, - "method": "post", - "url": "/api/mc-observability/Postprediction", - "data": "{\"pathParams\":{\"nsId\":\"ns01\",\"targetId\":\"vm-1\"},\"Request\":{\"target_type\":\"vm\",\"measurement\":\"cpu\",\"prediction_range\":\"6h\"}}" - }, - "request": {} + "config": { + "transitional": { + "silentJSONParsing": true, + "forcedJSONParsing": true, + "clarifyTimeoutError": false + }, + "adapter": [ + "xhr", + "http" + ], + "transformRequest": [ + null + ], + "transformResponse": [ + null + ], + "timeout": 0, + "xsrfCookieName": "XSRF-TOKEN", + "xsrfHeaderName": "X-XSRF-TOKEN", + "maxContentLength": -1, + "maxBodyLength": -1, + "env": {}, + "headers": { + "Accept": "application/json, text/plain, */*", + "Content-Type": "application/json" + }, + "method": "post", + "url": "/api/mc-observability/Postprediction", + "data": "{\"pathParams\":{\"nsId\":\"ns01\",\"targetId\":\"vm-1\"},\"Request\":{\"target_type\":\"vm\",\"measurement\":\"cpu\",\"prediction_range\":\"6h\"}}" + }, + "request": {} + } } return response // return mock @@ -362,7 +364,7 @@ export async function getDetectionHistory() { queryParams: { "measurement": "cpu", // "measurement": "mem", - // "start_time": "2002-07-02T06:49:28.605Z", + "start_time": "2024-10-24T12:31:00Z", // "end_time": "2002-07-02T06:49:28.605Z" }, } @@ -374,36 +376,39 @@ export async function getDetectionHistory() { ) var respDetectionData = response.data.responseData; - console.log("respDetectionData",respDetectionData) - const mock = { - "data": { - "ns_id": "ns01", - "target_id": "vm-1", - "measurement": "cpu", - "values": [ - { - "timestamp": "2024-10-24T06:20:00Z", - "anomaly_score": 0.85, - "isAnomaly": 1, - "value": 99.5 - }, - { - "timestamp": "2024-10-24T07:00:00Z", - "anomaly_score": 0.95, - "isAnomaly": 1, - "value": 94.2 - }, - { - "timestamp": "2024-10-24T10:00:00Z", - "anomaly_score": 0.65, - "isAnomaly": 1, - "value": 97.5 - }, - ] - }, - "rs_code": "200", - "rs_msg": "Success" + console.log("respDetectionData", respDetectionData) + if (!respDetectionData) { + return { + "data": { + "ns_id": "ns01", + "target_id": "vm-1", + "measurement": "cpu", + "values": [ + { + "timestamp": "2024-10-24T06:20:00Z", + "anomaly_score": 0.85, + "isAnomaly": 1, + "value": 99.5 + }, + { + "timestamp": "2024-10-24T07:00:00Z", + "anomaly_score": 0.95, + "isAnomaly": 1, + "value": 94.2 + }, + { + "timestamp": "2024-10-24T10:00:00Z", + "anomaly_score": 0.65, + "isAnomaly": 1, + "value": 97.5 + }, + ] + }, + "rs_code": "200", + "rs_msg": "Success" + } } - // return respDetectionData - return mock + + return respDetectionData + } \ No newline at end of file diff --git a/front/assets/js/pages/operation/manage/monitoring.js b/front/assets/js/pages/operation/manage/monitoring.js index cd63f606..9f4ca2d8 100644 --- a/front/assets/js/pages/operation/manage/monitoring.js +++ b/front/assets/js/pages/operation/manage/monitoring.js @@ -264,7 +264,7 @@ async function drawMonitoringGraph(MonitoringData) { curve: "smooth", width: 2 }, - colors: ['#FF5733', '#33FF57', '#3357FF', '#FF33A6'], + colors: ['#FFD700', '#33FF57', '#3357FF', '#FF33A6'], legend: { show: true, position: "top", @@ -292,8 +292,6 @@ async function drawMonitoringGraph(MonitoringData) { const chart = new ApexCharts(document.getElementById("monitoring_chart_1"), options); chart.render(); - // const predictionSwitch = document.getElementById("monitoring_predictionSwitch").checked; - const predictionSwitch = true; // Prediction Switch 체크 여부 확인 if ($('#monitoring_predictionSwitch').is(':checked')) { try { @@ -304,12 +302,13 @@ async function drawMonitoringGraph(MonitoringData) { if (response.data && response.data.responseData && response.data.responseData.data.values.length > 0) { const predictionData = response.data.responseData.data.values.map(value => ({ x: value.timestamp, - y: parseFloat(value.value).toFixed(2) // 소수점 둘째 자리까지 표현 + y: parseFloat(value.value).toFixed(2) })); const predictionSeries = { name: "CPU Total (Predicted)", - data: predictionData + data: predictionData, + color: '#FF5733' }; // 기존 데이터와 함께 업데이트 @@ -320,10 +319,8 @@ async function drawMonitoringGraph(MonitoringData) { } catch (error) { console.error("Prediction API failed:", error); console.log("Using existing data without prediction."); - // 오류가 발생한 경우 예외 처리하여 기존 데이터만 표시 } } - // detectionchecked // Detection Switch 체크 여부 확인 if ($('#detectionSwitch').is(':checked')) { diff --git a/front/assets/js/partials/operation/manage/server_monitoring.js b/front/assets/js/partials/operation/manage/server_monitoring.js index 532dcd61..6b6dc4f0 100644 --- a/front/assets/js/partials/operation/manage/server_monitoring.js +++ b/front/assets/js/partials/operation/manage/server_monitoring.js @@ -66,11 +66,6 @@ export function monitoringDataInit() { // data를 받아서 chart 그리기 : TODO : 공통으로 옮기기 function drawMonitoringChart(eleId, chartTitle, chartDataList, chartLabels){ -console.log("=====", window) -console.log("eleId ", document.getElementById(eleId)) -console.log("chartTitle ", chartTitle) -console.log("chartDataList ", chartDataList) -console.log("chartLabels ", chartLabels) window && (new Apexcharts(document.getElementById(eleId), { chart: { type: "area", diff --git a/front/assets/js/partials/operation/manage/serverrecommendation.js b/front/assets/js/partials/operation/manage/serverrecommendation.js index 85c7eb02..93d8e887 100644 --- a/front/assets/js/partials/operation/manage/serverrecommendation.js +++ b/front/assets/js/partials/operation/manage/serverrecommendation.js @@ -409,7 +409,7 @@ export async function getRecommendVmInfo() { return } recommendVmSpecListObj = respData.responseData - + console.log("asdasdasd",respData.responseData) recommendTable.setData(recommendVmSpecListObj) } diff --git a/front/templates/pages/analytics/monitorings/eventsntraces/alarmshistory.html b/front/templates/pages/analytics/monitorings/eventsntraces/alarmshistory.html index bf1e2661..553a5408 100644 --- a/front/templates/pages/analytics/monitorings/eventsntraces/alarmshistory.html +++ b/front/templates/pages/analytics/monitorings/eventsntraces/alarmshistory.html @@ -4,7 +4,7 @@
-

Event & Alarms

+

Policy

From 268c58083cfd59a03fa7a338f2a6bae41cec5189 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:12:52 +0000 Subject: [PATCH 02/43] node version --- .github/workflows/continuous-integration.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 76d8ae8a..84439635 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -99,7 +99,7 @@ jobs: - name: Install Node.js uses: actions/setup-node@v3 with: - node-version: '16' + node-version: '20' - name: Install npm dependencies run: npm install From ed165018e4c00472210c2aaf2d10ddb9b8eac328 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:15:41 +0000 Subject: [PATCH 03/43] fix ci ignore --- .github/workflows/continuous-integration.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 84439635..e25fa6da 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -11,13 +11,10 @@ on: - "**.md" - ".gitignore" - "LICENSE" - - "CODEOWNERS" - - "assets/**" - "docs/**" - # - "scripts/**" - # - "src/testclient/scripts/**" - # - ".all-contributorsrc" - + - "api/scripts/**" + - "front/scripts/**" + - "*/scripts/**" jobs: # The job key (i.e., ID) is "build-source-code" build-source-code-api-server: From 36355dd1fa0680a4bb5f7cfcdd0a3be08b21acdf Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:21:23 +0000 Subject: [PATCH 04/43] update yarn lock for ci --- front/yarn.lock | 1703 ++++++++++++++++++++++------------------------- 1 file changed, 795 insertions(+), 908 deletions(-) diff --git a/front/yarn.lock b/front/yarn.lock index 486d5035..4b19f6ed 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -16,8 +16,8 @@ __metadata: linkType: hard "@babel/cli@npm:^7.0.0": - version: 7.25.6 - resolution: "@babel/cli@npm:7.25.6" + version: 7.25.9 + resolution: "@babel/cli@npm:7.25.9" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" "@nicolo-ribaudo/chokidar-2": "npm:2.1.8-no-fsevents.3" @@ -38,121 +38,123 @@ __metadata: bin: babel: ./bin/babel.js babel-external-helpers: ./bin/babel-external-helpers.js - checksum: 10c0/861d3c2ed6c47b25a322c2f6127f56783d8d333fc2d02d3815f86301fe1102eca5f61b8a5c8610a6a2872d1ccfce24fd6d4a91f4f73536e43b8e2f28f9dcf5ed + checksum: 10c0/2e8228c3715e220fa902888c643ce1a89c4ee90be3d9f7a31218d5bb2500456e0cef12cb90fd5877ab3e5a4498df8f27670425d346422a3eb52052fd3184d520 languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" +"@babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/code-frame@npm:7.26.0" dependencies: - "@babel/highlight": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + checksum: 10c0/46f7e367714be736b52ea3c01b24f47e2102e210fb83021d1c8237d8fc511b9538909e16e2fcdbb5cb6173e0794e28624309a59014e52fcfb7bde908f5284388 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2, @babel/compat-data@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: 10c0/50d79734d584a28c69d6f5b99adfaa064d0f41609a378aef04eb06accc5b44f8520e68549eba3a082478180957b7d5783f1bfb1672e4ae8574e797ce8bae79fa +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/compat-data@npm:7.26.0" + checksum: 10c0/6325c9151a3c9b0a3a807e854a26255ef66d989bff331475a935af9bb18f160e0fffe6aed550e4e96b63f91efcd874bfbaab2a1f4a2f8d25645d712a0de590fb languageName: node linkType: hard "@babel/core@npm:^7.0.0": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/generator@npm:7.25.6" +"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/generator@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/parser": "npm:^7.26.0" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/f89282cce4ddc63654470b98086994d219407d025497f483eb03ba102086e11e2b685b27122f6ff2e1d93b5b5fa0c3a6b7e974fbf2e4a75b685041a746a4291e + jsesc: "npm:^3.0.2" + checksum: 10c0/b6bb9185f19a97eaf58e04a6d39a13237076678e7ed16b6321dea914535d4bf6a8d7727c9dcb65539845aa0096b326eb67be4bab764bd74bcfd848e2eda68609 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a + "@babel/types": "npm:^7.25.9" + checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.4" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a765d9e0482e13cf96642fa8aa28e6f7d4d7d39f37840d6246e5e10a7c47f47c52d52522edd3073f229449d17ec0db6f9b7b5e398bff6bb0b4994d65957a164c + checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0, @babel/helper-create-regexp-features-plugin@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - regexpu-core: "npm:^5.3.1" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + regexpu-core: "npm:^6.1.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/85a7e3639c118856fb1113f54fb7e3bf7698171ddfd0cd6fccccd5426b3727bc1434fe7f69090441dcde327feef9de917e00d35e47ab820047057518dd675317 + checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef languageName: node linkType: hard @@ -171,223 +173,210 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" - checksum: 10c0/7e14a5acc91f6cd26305a4441b82eb6f616bd70b096a4d2099a968f16b26d50207eec0b9ebfc466fefd62bd91587ac3be878117cdfec819b7151911183cb0e5a + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10c0/ca6a9884705dea5c95a8b3ce132d1e3f2ae951ff74987d400d1d9c215dae9c0f9e29924d8f8e131e116533d182675bc261927be72f6a9a2968eaeeaa51eb1d0f + "@babel/types": "npm:^7.25.9" + checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-wrap-function": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/0d17b5f7bb6a607edc9cc62fff8056dd9f341bf2f919884f97b99170d143022a5e7ae57922c4891e4fc360ad291e708d2f8cd8989f1d3cd7a17600159984f5a6 + checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b4b6650ab3d56c39a259367cd97f8df2f21c9cebb3716fea7bca40a150f8847bfb82f481e98927c7c6579b48a977b5a8f77318a1c6aeb497f41ecd6dbc3fdfef + checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10c0/e3a9b8ac9c262ac976a1bcb5fe59694db5e6f0b4f9e7bdba5c7693b8b5e28113c23bdaa60fe8d3ec32a337091b67720b2053bcb3d5655f5406536c3d0584242b + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10c0/73db93a34ae89201351288bee7623eed81a54000779462a986105b54ffe82069e764afd15171a428b82e7c7a9b5fec10b5d5603b216317a414062edf5c67a21f +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-wrap-function@npm:7.25.0" +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/d54601a98384c191cbc1ff07b03a19e288ef8d5c6bfafe270b2a303d96e7304eb296002921ed464cc1b105a547d1db146eb86b0be617924dee1ba1b379cdc216 + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 languageName: node linkType: hard -"@babel/helpers@npm:^7.25.0": - version: 7.25.6 - resolution: "@babel/helpers@npm:7.25.6" +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" - checksum: 10c0/448c1cdabccca42fd97a252f73f1e4bcd93776dbf24044f3b4f49b756bf2ece73ee6df05177473bb74ea7456dddd18d6f481e4d96d2cc7839d078900d48c696c - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": - version: 7.25.6 - resolution: "@babel/parser@npm:7.25.6" +"@babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0": + version: 7.26.1 + resolution: "@babel/parser@npm:7.26.1" dependencies: - "@babel/types": "npm:^7.25.6" + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/f88a0e895dbb096fd37c4527ea97d12b5fc013720602580a941ac3a339698872f0c911e318c292b184c36b5fbe23b612f05aff9d24071bc847c7b1c21552c41d + checksum: 10c0/dc7d4e6b7eb667fa0784e7e2c3f6f92ca12ad72242f6d4311995310dae55093f02acdb595b69b0dbbf04cb61ad87156ac03186ff32eacfa35149c655bc22c14b languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/814b4d3f102e7556a5053d1acf57ef601cfcff39a2c81b8cdc6a5c842e3cb9838f5925d1466a5f1e6416e74c9c83586a3c07fbd7fb8610a396c2becdf9ae5790 + checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/9645a1f47b3750acadb1353c02e71cc712d072aafe5ce115ed3a886bc14c5d9200cfb0b5b5e60e813baa549b800cf798f8714019fd246c699053cf68c428e426 + checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/ed1ce1c90cac46c01825339fd0f2a96fa071b016fb819d8dfaf8e96300eae30e74870cb47e4dc80d4ce2fb287869f102878b4f3b35bc927fec8b1d0d76bcf612 + checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36 + checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/45988025537a9d4a27b610fd696a18fd9ba9336621a69b4fb40560eeb10c79657f85c92a37f30c7c8fb29c22970eea0b373315795a891f1a05549a6cfe5a6bfe + checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272 languageName: node linkType: hard @@ -400,190 +389,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5 - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.24.7": - version: 7.25.6 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.25.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/55afa63b1b1355bcc1d85a9ad9d2c78983e27beee38e232d5c1ab59eac39127ce3c3817d6686e3ab1d0aff5edd8e38a6852885c65d3e518accdd183a445ef411 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.25.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/0e9359cf2d117476310961dfcfd7204ed692e933707da10d6194153d3996cd2ea5b7635fc90d720dce3612083af89966bb862561064a509c350320dc98644751 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee + checksum: 10c0/525b174e60b210d96c1744c1575fc2ddedcc43a479cba64a5344cf77bd0541754fc58120b5a11ff832ba098437bb05aa80900d1f49bb3d888c5e349a4a3a356e languageName: node linkType: hard -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" +"@babel/plugin-syntax-import-attributes@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f + checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 languageName: node linkType: hard @@ -599,685 +423,671 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245 + checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.4" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-remap-async-to-generator": "npm:^7.25.0" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/traverse": "npm:^7.25.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/efed6f6be90b25ad77c15a622a0dc0b22dbf5d45599c207ab8fbc4e959aef21f574fa467d9cf872e45de664a46c32334e78dee2332d82f5f27e26249a34a0920 + checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-remap-async-to-generator": "npm:^7.24.7" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d + checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd + checksum: 10c0/e92ba0e3d72c038513844d8fca1cc8437dcb35cd42778e97fd03cb8303380b201468611e7ecfdcae3de33473b2679fe2de1552c5f925d112c5693425cf851f10 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" +"@babel/plugin-transform-block-scoping@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/382931c75a5d0ea560387e76cb57b03461300527e4784efcb2fb62f36c1eb0ab331327b6034def256baa0cad9050925a61f9c0d56261b6afd6a29c3065fb0bd4 + checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-class-properties@npm:7.25.4" +"@babel/plugin-transform-class-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.4" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0b41bc8a5920d3d17c7c06220b601cf43e0a32ac34f05f05cd0cdf08915e4521b1b707cb1e60942b4fc68a5dfac09f0444a8720e0c72ce76fb039e8ec5263115 + checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" +"@babel/plugin-transform-class-static-block@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb + checksum: 10c0/cdcf5545ae6514ed75fbd73cccfa209c6a5dfdf0c2bb7bb62c0fb4ec334a32281bcf1bc16ace494d9dbe93feb8bdc0bd3cf9d9ccb6316e634a67056fa13b741b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-classes@npm:7.25.4" +"@babel/plugin-transform-classes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.4" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c68424d9dd64860825111aa4a4ed5caf29494b7a02ddb9c36351d768c41e8e05127d89274795cdfcade032d9d299e6c677418259df58c71e68f1741583dcf467 + checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" +"@babel/plugin-transform-computed-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/template": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49 + checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" +"@babel/plugin-transform-destructuring@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/804968c1d5f5072c717505296c1e5d5ec33e90550423de66de82bbcb78157156e8470bbe77a04ab8c710a88a06360a30103cf223ac7eff4829adedd6150de5ce + checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33 + checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9 + checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/1c9b57ddd9b33696e88911d0e7975e1573ebc46219c4b30eb1dc746cbb71aedfac6f6dab7fdfdec54dd58f31468bf6ab56b157661ea4ffe58f906d71f89544c8 + checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b + checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c + checksum: 10c0/3b42f65bab3fee28c385115ce6bcb6ba544dff187012df408a432c9fb44c980afd898911020c723dc1c9257aaf3d7d0131ad83ba15102bf30ad9a86fc2a8a912 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c + checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-for-of@npm:7.24.7" +"@babel/plugin-transform-for-of@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0 + checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.25.1": - version: 7.25.1 - resolution: "@babel/plugin-transform-function-name@npm:7.25.1" +"@babel/plugin-transform-function-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.1" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e74912174d5e33d1418b840443c2e226a7b76cc017c1ed20ee30a566e4f1794d4a123be03180da046241576e8b692731807ba1f52608922acf1cb2cb6957593f + checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" +"@babel/plugin-transform-json-strings@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a + checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/plugin-transform-literals@npm:7.25.2" +"@babel/plugin-transform-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0796883217b0885d37e7f6d350773be349e469a812b6bf11ccf862a6edf65103d3e7c849529d65381b441685c12e756751d8c2489a0fd3f8139bb5ef93185f58 + checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272 + checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684 + checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f + checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-simple-access": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f1cf552307ebfced20d3907c1dd8be941b277f0364aa655e2b5fee828c84c54065745183104dae86f1f93ea0406db970a463ef7ceaaed897623748e99640e5a7 + checksum: 10c0/6ce771fb04d4810257fc8900374fece877dacaed74b05eaa16ad9224b390f43795c4d046cbe9ae304e1eb5aad035d37383895e3c64496d647c2128d183916e74 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fca6198da71237e4bb1274b3b67a0c81d56013c9535361242b6bfa87d70a9597854aadb45d4d8203369be4a655e158be2a5d20af0040b1f8d1bfc47db3ad7b68 + checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" +"@babel/plugin-transform-modules-umd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85 + checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9 + checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-new-target@npm:7.24.7" +"@babel/plugin-transform-new-target@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df + checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9 + checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789 + checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb + checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-super@npm:7.24.7" +"@babel/plugin-transform-object-super@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869 + checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a + checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4ffbe1aad7dec7c9aa2bf6ceb4b2f91f96815b2784f2879bde80e46934f59d64a12cb2c6262e40897c4754d77d2c35d8a5cfed63044fdebf94978b1ed3d14b17 + checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-parameters@npm:7.24.7" +"@babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/53bf190d6926771545d5184f1f5f3f5144d0f04f170799ad46a43f683a01fab8d5fe4d2196cf246774530990c31fe1f2b9f0def39f0a5ddbb2340b924f5edf01 + checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-private-methods@npm:7.25.4" +"@babel/plugin-transform-private-methods@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.25.4" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7abdb427c3984a2c8a2e9d806297d8509b02f78a3501b7760e544be532446e9df328b876daa8fc38718f3dce7ccc45083016ee7aeaab169b81c142bc18700794 + checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba + checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" +"@babel/plugin-transform-property-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433 + checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" +"@babel/plugin-transform-regenerator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b + checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/4abc1db6c964efafc7a927cda814c7275275afa4b530483e0936fd614de23cb5802f7ca43edaa402008a723d4e7eac282b6f5283aa2eeb3b27da6d6c1dd7f8ed + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5 + checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf + checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-spread@npm:7.24.7" +"@babel/plugin-transform-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66 + checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109 + checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" +"@babel/plugin-transform-template-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6 + checksum: 10c0/5144da6036807bbd4e9d2a8b92ae67a759543929f34f4db9b463448a77298f4a40bf1e92e582db208fe08ee116224806a3bd0bed75d9da404fc2c0af9e6da540 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2f570a4fbbdc5fd85f48165a97452826560051e3b8efb48c3bb0a0a33ee8485633439e7b71bfe3ef705583a1df43f854f49125bd759abdedc195b2cf7e60012a + checksum: 10c0/2b19fd88608589d9bc6b607ff17b06791d35c67ef3249f4659283454e6a9984241e3bd4c4eb72bb8b3d860a73223f3874558b861adb7314aa317c1c6a2f0cafb languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69 + checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e + checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9 + checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.4" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f65749835a98d8d6242e961f9276bdcdb09020e791d151ccc145acaca9a66f025b2c7cb761104f139180d35eb066a429596ee6edece81f5fd9244e0edb97d7ec + checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f languageName: node linkType: hard "@babel/preset-env@npm:^7.0.0": - version: 7.25.4 - resolution: "@babel/preset-env@npm:7.25.4" - dependencies: - "@babel/compat-data": "npm:^7.25.4" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-option": "npm:^7.24.8" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" + dependencies: + "@babel/compat-data": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.9" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.25.9" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.9" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-syntax-import-assertions": "npm:^7.26.0" + "@babel/plugin-syntax-import-attributes": "npm:^7.26.0" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" - "@babel/plugin-transform-modules-amd": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" - "@babel/plugin-transform-modules-umd": "npm:^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-new-target": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-object-super": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.25.4" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-property-literals": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-reserved-words": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-template-literals": "npm:^7.24.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.4" + "@babel/plugin-transform-arrow-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.9" + "@babel/plugin-transform-async-to-generator": "npm:^7.25.9" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.25.9" + "@babel/plugin-transform-block-scoping": "npm:^7.25.9" + "@babel/plugin-transform-class-properties": "npm:^7.25.9" + "@babel/plugin-transform-class-static-block": "npm:^7.26.0" + "@babel/plugin-transform-classes": "npm:^7.25.9" + "@babel/plugin-transform-computed-properties": "npm:^7.25.9" + "@babel/plugin-transform-destructuring": "npm:^7.25.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-keys": "npm:^7.25.9" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-dynamic-import": "npm:^7.25.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.25.9" + "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" + "@babel/plugin-transform-for-of": "npm:^7.25.9" + "@babel/plugin-transform-function-name": "npm:^7.25.9" + "@babel/plugin-transform-json-strings": "npm:^7.25.9" + "@babel/plugin-transform-literals": "npm:^7.25.9" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.25.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.25.9" + "@babel/plugin-transform-modules-amd": "npm:^7.25.9" + "@babel/plugin-transform-modules-commonjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.9" + "@babel/plugin-transform-modules-umd": "npm:^7.25.9" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.25.9" + "@babel/plugin-transform-new-target": "npm:^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.25.9" + "@babel/plugin-transform-numeric-separator": "npm:^7.25.9" + "@babel/plugin-transform-object-rest-spread": "npm:^7.25.9" + "@babel/plugin-transform-object-super": "npm:^7.25.9" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" + "@babel/plugin-transform-private-methods": "npm:^7.25.9" + "@babel/plugin-transform-private-property-in-object": "npm:^7.25.9" + "@babel/plugin-transform-property-literals": "npm:^7.25.9" + "@babel/plugin-transform-regenerator": "npm:^7.25.9" + "@babel/plugin-transform-regexp-modifiers": "npm:^7.26.0" + "@babel/plugin-transform-reserved-words": "npm:^7.25.9" + "@babel/plugin-transform-shorthand-properties": "npm:^7.25.9" + "@babel/plugin-transform-spread": "npm:^7.25.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.25.9" + "@babel/plugin-transform-template-literals": "npm:^7.25.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.25.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.25.9" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-regex": "npm:^7.25.9" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.25.9" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.6" babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.37.1" + core-js-compat: "npm:^3.38.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ed210a1974b5a1e7f80a933c87253907ec869457cea900bc97892642fa9a690c47627a9bac08a7c9495deb992a2b15f308ffca2741e1876ba47172c96fa27e14 + checksum: 10c0/26e19dc407cfa1c5166be638b4c54239d084fe15d8d7e6306d8c6dc7bc1decc51070a8dcf28352c1a2feeefbe52a06d193a12e302327ad5f529583df75fb7a26 languageName: node linkType: hard @@ -1294,56 +1104,48 @@ __metadata: languageName: node linkType: hard -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 10c0/4f3ddd8c7c96d447e05c8304c1d5ba3a83fcabd8a716bc1091c2f31595cdd43a3a055fff7cb5d3042b8cb7d402d78820fcb4e05d896c605a7d8bcf30f2424c4a - languageName: node - linkType: hard - "@babel/runtime@npm:^7.8.4": - version: 7.25.6 - resolution: "@babel/runtime@npm:7.25.6" + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/d6143adf5aa1ce79ed374e33fdfd74fa975055a80bc6e479672ab1eadc4e4bfd7484444e17dd063a1d180e051f3ec62b357c7a2b817e7657687b47313158c3d2 + checksum: 10c0/12c01357e0345f89f4f7e8c0e81921f2a3e3e101f06e8eaa18a382b517376520cd2fa8c237726eb094dab25532855df28a7baaf1c26342b52782f6936b07c287 languageName: node linkType: hard -"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" +"@babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.4": - version: 7.25.6 - resolution: "@babel/traverse@npm:7.25.6" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.6" - "@babel/parser": "npm:^7.25.6" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.6" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/964304c6fa46bd705428ba380bf73177eeb481c3f26d82ea3d0661242b59e0dd4329d23886035e9ca9a4ceb565c03a76fd615109830687a27bcd350059d6377e + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard -"@babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6, @babel/types@npm:^7.4.4": - version: 7.25.6 - resolution: "@babel/types@npm:7.25.6" +"@babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.4.4": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/89d45fbee24e27a05dca2d08300a26b905bd384a480448823f6723c72d3a30327c517476389b7280ce8cb9a2c48ef8f47da7f9f6d326faf6f53fd6b68237bdc4 + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -1533,6 +1335,140 @@ __metadata: languageName: node linkType: hard +"@parcel/watcher-android-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-android-arm64@npm:2.4.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-arm64@npm:2.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-darwin-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-darwin-x64@npm:2.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-freebsd-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-freebsd-x64@npm:2.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-arm64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.4.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-glibc@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@parcel/watcher-linux-x64-musl@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.4.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@parcel/watcher-win32-arm64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-arm64@npm:2.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@parcel/watcher-win32-ia32@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-ia32@npm:2.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@parcel/watcher-win32-x64@npm:2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher-win32-x64@npm:2.4.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.4.1": + version: 2.4.1 + resolution: "@parcel/watcher@npm:2.4.1" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-arm64": "npm:2.4.1" + "@parcel/watcher-darwin-x64": "npm:2.4.1" + "@parcel/watcher-freebsd-x64": "npm:2.4.1" + "@parcel/watcher-linux-arm-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-arm64-musl": "npm:2.4.1" + "@parcel/watcher-linux-x64-glibc": "npm:2.4.1" + "@parcel/watcher-linux-x64-musl": "npm:2.4.1" + "@parcel/watcher-win32-arm64": "npm:2.4.1" + "@parcel/watcher-win32-ia32": "npm:2.4.1" + "@parcel/watcher-win32-x64": "npm:2.4.1" + detect-libc: "npm:^1.0.3" + is-glob: "npm:^4.0.3" + micromatch: "npm:^4.0.5" + node-addon-api: "npm:^7.0.0" + node-gyp: "npm:latest" + dependenciesMeta: + "@parcel/watcher-android-arm64": + optional: true + "@parcel/watcher-darwin-arm64": + optional: true + "@parcel/watcher-darwin-x64": + optional: true + "@parcel/watcher-freebsd-x64": + optional: true + "@parcel/watcher-linux-arm-glibc": + optional: true + "@parcel/watcher-linux-arm64-glibc": + optional: true + "@parcel/watcher-linux-arm64-musl": + optional: true + "@parcel/watcher-linux-x64-glibc": + optional: true + "@parcel/watcher-linux-x64-musl": + optional: true + "@parcel/watcher-win32-arm64": + optional: true + "@parcel/watcher-win32-ia32": + optional: true + "@parcel/watcher-win32-x64": + optional: true + checksum: 10c0/33b7112094b9eb46c234d824953967435b628d3d93a0553255e9910829b84cab3da870153c3a870c31db186dc58f3b2db81382fcaee3451438aeec4d786a6211 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1667,11 +1603,11 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 22.7.4 - resolution: "@types/node@npm:22.7.4" + version: 22.8.1 + resolution: "@types/node@npm:22.8.1" dependencies: - undici-types: "npm:~6.19.2" - checksum: 10c0/c22bf54515c78ff3170142c1e718b90e2a0003419dc2d55f79c9c9362edd590a6ab1450deb09ff6e1b32d1b4698da407930b16285e8be3a009ea6cd2695cac01 + undici-types: "npm:~6.19.8" + checksum: 10c0/83550fdf72a7db5b55eceac3f4fb038844eaee20202bdd2297a8248370cfa08317bda1605b781a8043eda4f173b75e73632e652fc85509eb14dfef78fa17337f languageName: node linkType: hard @@ -1897,11 +1833,11 @@ __metadata: linkType: hard "acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.8.2": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" + version: 8.14.0 + resolution: "acorn@npm:8.14.0" bin: acorn: bin/acorn - checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386 + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 languageName: node linkType: hard @@ -2005,15 +1941,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -2252,17 +2179,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.12.0, browserslist@npm:^4.14.5, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.24.0 - resolution: "browserslist@npm:4.24.0" +"browserslist@npm:^4.12.0, browserslist@npm:^4.14.5, browserslist@npm:^4.23.3, browserslist@npm:^4.24.0": + version: 4.24.2 + resolution: "browserslist@npm:4.24.2" dependencies: - caniuse-lite: "npm:^1.0.30001663" - electron-to-chromium: "npm:^1.5.28" + caniuse-lite: "npm:^1.0.30001669" + electron-to-chromium: "npm:^1.5.41" node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" + update-browserslist-db: "npm:^1.1.1" bin: browserslist: cli.js - checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 + checksum: 10c0/d747c9fb65ed7b4f1abcae4959405707ed9a7b835639f8a9ba0da2911995a6ab9b0648fd05baf2a4d4e3cf7f9fdbad56d3753f91881e365992c1d49c8d88ff7a languageName: node linkType: hard @@ -2458,21 +2385,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001663": - version: 1.0.30001666 - resolution: "caniuse-lite@npm:1.0.30001666" - checksum: 10c0/2d49e9be676233c24717f12aad3d01b3e5f902b457fe1deefaa8d82e64786788a8f79381ae437c61b50e15c9aea8aeb59871b1d54cb4c28b9190d53d292e2339 - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 +"caniuse-lite@npm:^1.0.30001669": + version: 1.0.30001673 + resolution: "caniuse-lite@npm:1.0.30001673" + checksum: 10c0/0e73a2b0f06973052e563dec9990a6fd440d510fa2ff54fa50310e736abb86e96c96b43c10e609fc22f2109f98fe76428b70441baf6b1a49f69ccf50c1879f6b languageName: node linkType: hard @@ -2543,15 +2459,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -2561,13 +2468,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -2675,7 +2575,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0": +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": version: 3.38.1 resolution: "core-js-compat@npm:3.38.1" dependencies: @@ -2824,6 +2724,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -2850,10 +2759,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.28": - version: 1.5.31 - resolution: "electron-to-chromium@npm:1.5.31" - checksum: 10c0/e8aecd88c4c6d50a9d459b4b222865b855bab8f1b52e82913804e18b7884f2887bd76c61b3aa08c2ccbdcda098dd8486443f75bf770f0138f21dd9e63548fca7 +"electron-to-chromium@npm:^1.5.41": + version: 1.5.47 + resolution: "electron-to-chromium@npm:1.5.47" + checksum: 10c0/5f8c4a9f0698695960f7bef5242d52b1043020ce50b51fb534409a768847f9bdc9672cb4a6a560eeb8f8b47a04327ae9b31b2cee376cb637b3eb04a4daeaa3b8 languageName: node linkType: hard @@ -2979,13 +2888,6 @@ __metadata: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 - languageName: node - linkType: hard - "eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -3087,9 +2989,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.0.2 - resolution: "fast-uri@npm:3.0.2" - checksum: 10c0/8cdd3da7b4022a037d348d587d55caff74b7e4f862bbdd2cc35c1e6e3f97d0aedb567894d44c57ee8798d3192cceb97dcf41dbdabfa07dd2842a0474a6c6eeef + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: 10c0/4b2c5ce681a062425eae4f15cdc8fc151fd310b2f69b1f96680677820a8b49c3cd6e80661a406e19d50f0c40a3f8bffdd458791baf66f4a879d80be28e10a320 languageName: node linkType: hard @@ -3394,13 +3296,6 @@ __metadata: languageName: node linkType: hard -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -3654,7 +3549,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:^4.0.1, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -3790,21 +3685,12 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" bin: jsesc: bin/jsesc - checksum: 10c0/f93792440ae1d80f091b65f8ceddf8e55c4bb7f1a09dee5dcbdb0db5612c55c0f6045625aa6b7e8edb2e0a4feabd80ee48616dbe2d37055573a84db3d24f96d9 + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 languageName: node linkType: hard @@ -4066,7 +3952,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -4264,9 +4150,9 @@ __metadata: linkType: hard "negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10c0/3e677139c7fb7628a6f36335bf11a885a62c21d5390204590a1a214a5631fcbe5ea74ef6a610b60afe84b4d975cbe0566a23f20ee17c77c73e74b80032108dea languageName: node linkType: hard @@ -4277,6 +4163,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^7.0.0": + version: 7.1.1 + resolution: "node-addon-api@npm:7.1.1" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/fb32a206276d608037fa1bcd7e9921e177fe992fc610d098aa3128baca3c0050fc1e014fa007e9b3874cf865ddb4f5bd9f43ccb7cbbbe4efaff6a83e920b17e9 + languageName: node + linkType: hard + "node-gyp@npm:latest": version: 10.2.0 resolution: "node-gyp@npm:10.2.0" @@ -4502,9 +4397,9 @@ __metadata: linkType: hard "picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": - version: 1.1.0 - resolution: "picocolors@npm:1.1.0" - checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023 + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard @@ -4762,9 +4657,9 @@ __metadata: linkType: hard "readdirp@npm:^4.0.1": - version: 4.0.1 - resolution: "readdirp@npm:4.0.1" - checksum: 10c0/e5a0b547015f68ecc918f115b62b75b2b840611480a9240cb3317090a0ddac01bb9b40315a8fa08acdf52a43eea17b808c89b645263cba3ab64dc557d7f801f1 + version: 4.0.2 + resolution: "readdirp@npm:4.0.2" + checksum: 10c0/a16ecd8ef3286dcd90648c3b103e3826db2b766cdb4a988752c43a83f683d01c7059158d623cbcd8bdfb39e65d302d285be2d208e7d9f34d022d912b929217dd languageName: node linkType: hard @@ -4786,7 +4681,7 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": +"regenerate-unicode-properties@npm:^10.2.0": version: 10.2.0 resolution: "regenerate-unicode-properties@npm:10.2.0" dependencies: @@ -4818,28 +4713,35 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" dependencies: - "@babel/regjsgen": "npm:^0.8.0" regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.1.0" - regjsparser: "npm:^0.9.1" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.11.0" unicode-match-property-ecmascript: "npm:^2.0.0" unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10c0/7945d5ab10c8bbed3ca383d4274687ea825aee4ab93a9c51c6e31e1365edd5ea807f6908f800ba017b66c462944ba68011164e7055207747ab651f8111ef3770 + checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e languageName: node linkType: hard -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd + languageName: node + linkType: hard + +"regjsparser@npm:^0.11.0": + version: 0.11.2 + resolution: "regjsparser@npm:0.11.2" dependencies: - jsesc: "npm:~0.5.0" + jsesc: "npm:~3.0.2" bin: regjsparser: bin/parser - checksum: 10c0/fe44fcf19a99fe4f92809b0b6179530e5ef313ff7f87df143b08ce9a2eb3c4b6189b43735d645be6e8f4033bfb015ed1ca54f0583bc7561bed53fd379feb8225 + checksum: 10c0/764e762de1b26a0cf48b45728fc1b2087f9c55bd4cea858cce28e4d5544c237f3f2dd6d40e2c41b80068e9cb92cc7d731a4285bc1f27d6ebc227792c70e4af1b languageName: node linkType: hard @@ -5007,15 +4909,16 @@ __metadata: linkType: hard "sass@npm:^1.0.0": - version: 1.79.4 - resolution: "sass@npm:1.79.4" + version: 1.80.4 + resolution: "sass@npm:1.80.4" dependencies: + "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/505ff0d9267d0fb990971e617acfeabf7c060c55d4cef68fe8a4bc693e7ea88ae7d7caeca3975e4b453459ba4a707b6e5b6979fc9395a7e08f0a43ca6aed06b8 + checksum: 10c0/58ca0f2d10720cde6621ee62f4bdbb537ea2ac572c565d5f02309f8271a5e1e880ad8c163b933e52b22b3dc0550973fb5a6033a500248e6a0d89dd050c1743cf languageName: node linkType: hard @@ -5416,15 +5319,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 - languageName: node - linkType: hard - "supports-color@npm:^7.0.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -5604,8 +5498,8 @@ __metadata: linkType: hard "terser@npm:^5.26.0": - version: 5.34.1 - resolution: "terser@npm:5.34.1" + version: 5.36.0 + resolution: "terser@npm:5.36.0" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -5613,7 +5507,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/51c7d704c5c4ae88bf937124112c9972aed4e1fd29d805cc2d86e0f54cd631ecd4e69db5bb3c1e3b450c741c86e2313328bea0fde925329e8a31a07a7941723c + checksum: 10c0/f4ed2bead19f64789ddcfb85b7cef78f3942f967b8890c54f57d1e35bc7d547d551c6a4c32210bce6ba45b1c738314bbfac6acbc6c762a45cd171777d0c120d9 languageName: node linkType: hard @@ -5638,13 +5532,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -5664,7 +5551,7 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.19.2": +"undici-types@npm:~6.19.8": version: 6.19.8 resolution: "undici-types@npm:6.19.8" checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 @@ -5738,7 +5625,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.0": +"update-browserslist-db@npm:^1.1.1": version: 1.1.1 resolution: "update-browserslist-db@npm:1.1.1" dependencies: From 13f89ddbc7ff2c915275652fd8293ab43ca11234 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:22:58 +0000 Subject: [PATCH 05/43] Cache Yarn dependencies --- .github/workflows/continuous-integration.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index e25fa6da..76b6fa8b 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -102,6 +102,14 @@ jobs: run: npm install working-directory: ./front + - name: Cache Yarn dependencies + uses: actions/cache@v3 + with: + path: ~/.yarn/cache + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install Yarn dependencies run: yarn install working-directory: ./front From 2478c69444f3158eab34db6bd4f4eaa749f54419 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:40:56 +0000 Subject: [PATCH 06/43] add yarn --frozen-lockfile --- .github/workflows/continuous-integration.yaml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 76b6fa8b..13eb7642 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -102,16 +102,8 @@ jobs: run: npm install working-directory: ./front - - name: Cache Yarn dependencies - uses: actions/cache@v3 - with: - path: ~/.yarn/cache - key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Install Yarn dependencies - run: yarn install + run: yarn install --frozen-lockfile working-directory: ./front - name: Build Buffalo application From 8151aaaffd70df4aef86a8b0e3f8be23c03138eb Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:44:25 +0000 Subject: [PATCH 07/43] Yarn 4.1.0 --immutable option is changed --- .github/workflows/continuous-integration.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 13eb7642..04255e12 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -103,7 +103,7 @@ jobs: working-directory: ./front - name: Install Yarn dependencies - run: yarn install --frozen-lockfile + run: yarn install --immutable working-directory: ./front - name: Build Buffalo application From 6214315efd9e613b3d384eac3bf9503aab7bcab3 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:50:12 +0000 Subject: [PATCH 08/43] use yarn specific version --- .github/workflows/continuous-integration.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 04255e12..f8eddedd 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -101,9 +101,12 @@ jobs: - name: Install npm dependencies run: npm install working-directory: ./front + + - name: Install specific Yarn version + run: npm install -g yarn@4.1.0 - name: Install Yarn dependencies - run: yarn install --immutable + run: yarn install --immutable-cach working-directory: ./front - name: Build Buffalo application From 823557957f9b048a5e06f8fcc3e22134b87c8012 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 04:58:51 +0000 Subject: [PATCH 09/43] match yarn and npm --- front/package-lock.json | 62 ++++++++++++++++++++++++++++++----------- front/yarn.lock | 22 +++++++-------- 2 files changed, 57 insertions(+), 27 deletions(-) diff --git a/front/package-lock.json b/front/package-lock.json index 2bded29b..4b3ee7e5 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -2374,11 +2374,12 @@ } }, "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.4", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -2495,11 +2496,13 @@ } }, "node_modules/braces": { - "version": "3.0.2", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3350,7 +3353,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { @@ -3397,15 +3402,16 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -3460,6 +3466,21 @@ "dev": true, "license": "ISC" }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/fslightbox": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/fslightbox/-/fslightbox-3.4.1.tgz", @@ -3825,6 +3846,8 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", "engines": { @@ -4087,11 +4110,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -5434,7 +5459,9 @@ } }, "node_modules/tar": { - "version": "6.2.0", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "license": "ISC", "dependencies": { @@ -5596,9 +5623,10 @@ } }, "node_modules/tinymce": { - "version": "6.8.3", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.3.tgz", - "integrity": "sha512-3fCHKAeqT+xNwBVESf6iDbDV0VNwZNmfrkx9c/6Gz5iB8piMfaO6s7FvoiTrj1hf1gVbfyLTnz1DooI6DhgINQ==" + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.5.tgz", + "integrity": "sha512-qAL/FxL7cwZHj4BfaF818zeJJizK9jU5IQzTcSLL4Rj5MaJdiVblEj7aDr80VCV1w9h4Lak9hlnALhq/kVtN1g==", + "license": "MIT" }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -5610,6 +5638,8 @@ }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "license": "MIT", "dependencies": { diff --git a/front/yarn.lock b/front/yarn.lock index 4b19f6ed..3414fdb6 100644 --- a/front/yarn.lock +++ b/front/yarn.lock @@ -2039,13 +2039,13 @@ __metadata: linkType: hard "axios@npm:^1.6.7": - version: 1.6.7 - resolution: "axios@npm:1.6.7" + version: 1.7.7 + resolution: "axios@npm:1.7.7" dependencies: - follow-redirects: "npm:^1.15.4" + follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d + checksum: 10c0/4499efc89e86b0b49ffddc018798de05fab26e3bf57913818266be73279a6418c3ce8f9e934c7d2d707ab8c095e837fc6c90608fb7715b94d357720b5f568af7 languageName: node linkType: hard @@ -3078,13 +3078,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.4": - version: 1.15.5 - resolution: "follow-redirects@npm:1.15.5" +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: 10c0/418d71688ceaf109dfd6f85f747a0c75de30afe43a294caa211def77f02ef19865b547dfb73fde82b751e1cc507c06c754120b848fe5a7400b0a669766df7615 + checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f languageName: node linkType: hard @@ -5526,9 +5526,9 @@ __metadata: linkType: hard "tinymce@npm:^6.8.3": - version: 6.8.3 - resolution: "tinymce@npm:6.8.3" - checksum: 10c0/92c1e70e9ed00efae66853f38e18e6720c27535a7617181971ed846a6e659da53ef2bf6e0871ea5e9f529eaed73fe8f2cbcf24f43ead336ef3d5100adb8e0b6a + version: 6.8.5 + resolution: "tinymce@npm:6.8.5" + checksum: 10c0/8c273b1ee321080dc8684d433ad6e8b10870032347d56768a2feb533a4d6a43c51ce44feb7707a4d195ddaafe329c4ec7690f0aebcc8b37faf19a99f739b227d languageName: node linkType: hard From 434c16552c9e473660c53fc8866fc4d9239a50fa Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:32:30 +0000 Subject: [PATCH 10/43] disable yarn --- .github/workflows/continuous-integration.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index f8eddedd..3636b3b5 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -101,13 +101,10 @@ jobs: - name: Install npm dependencies run: npm install working-directory: ./front - - - name: Install specific Yarn version - run: npm install -g yarn@4.1.0 - - name: Install Yarn dependencies - run: yarn install --immutable-cach - working-directory: ./front + # - name: Install Yarn dependencies + # run: yarn install --immutable-cach + # working-directory: ./front - name: Build Buffalo application run: buffalo build --static From 0189c7f80f5b9d3c0b9c4535a0a2ed3ea1507598 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:38:21 +0000 Subject: [PATCH 11/43] yarn version fix --- .github/workflows/continuous-integration.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 3636b3b5..cf478e8f 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -93,18 +93,19 @@ jobs: run: go mod download working-directory: ./front - - name: Install Node.js - uses: actions/setup-node@v3 - with: - node-version: '20' + - name: Enable Corepack + run: corepack enable + + - name: Install Yarn 4.1.0 + run: corepack prepare yarn@4.1.0 --activate - name: Install npm dependencies run: npm install working-directory: ./front - # - name: Install Yarn dependencies - # run: yarn install --immutable-cach - # working-directory: ./front + - name: Install Yarn dependencies + run: yarn install + working-directory: ./front - name: Build Buffalo application run: buffalo build --static From 5c874185dc6bd4cfe3c2df910d95bfeb4351f46d Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:38:53 +0000 Subject: [PATCH 12/43] add node --- .github/workflows/continuous-integration.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index cf478e8f..f12307bd 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -92,6 +92,11 @@ jobs: - name: Install Go dependencies run: go mod download working-directory: ./front + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' - name: Enable Corepack run: corepack enable From 86b4de72bf341ac8332023ce5bc4f247a76198fb Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:41:07 +0000 Subject: [PATCH 13/43] node version fix --- .github/workflows/continuous-integration.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index f12307bd..00ceab67 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -96,7 +96,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: '20' + node-version: '20.17.0' - name: Enable Corepack run: corepack enable From bde56374476c39ef940b7b20130140769af50da7 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:43:26 +0000 Subject: [PATCH 14/43] add yarn immutable --- .github/workflows/continuous-integration.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 00ceab67..143408ae 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -109,7 +109,7 @@ jobs: working-directory: ./front - name: Install Yarn dependencies - run: yarn install + run: yarn install --immutable working-directory: ./front - name: Build Buffalo application From 921006e1f3a6b6bf31cf0bd26c97e0e6614c269b Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:48:21 +0000 Subject: [PATCH 15/43] yarn add --check-cache --- .github/workflows/continuous-integration.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 143408ae..60871b55 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -108,8 +108,8 @@ jobs: run: npm install working-directory: ./front - - name: Install Yarn dependencies - run: yarn install --immutable + - name: Install Yarn dependencies with cache check + run: yarn install --immutable --check-cache working-directory: ./front - name: Build Buffalo application From f4a63ad7779f84d38e50f801ecc91b7003a785f0 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 05:57:39 +0000 Subject: [PATCH 16/43] Verify versions --- .github/workflows/continuous-integration.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 60871b55..115021db 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -104,6 +104,12 @@ jobs: - name: Install Yarn 4.1.0 run: corepack prepare yarn@4.1.0 --activate + - name: Verify versions + run: | + node -v + npm -v + yarn -v + - name: Install npm dependencies run: npm install working-directory: ./front From 4e71260b70485f6e758952d9844e9bd78ba036a8 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 22:50:33 +0000 Subject: [PATCH 17/43] [skip cd] update git flow --- .github/workflows/continuous-delivery.yaml | 124 ++++++++++++++++++ .github/workflows/continuous-integration.yaml | 2 +- .gitignore | 6 - 3 files changed, 125 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/continuous-delivery.yaml diff --git a/.github/workflows/continuous-delivery.yaml b/.github/workflows/continuous-delivery.yaml new file mode 100644 index 00000000..ae184e15 --- /dev/null +++ b/.github/workflows/continuous-delivery.yaml @@ -0,0 +1,124 @@ +# This workflow performs continuous delivery (CD). +# This workflow will build a container image and publish it to container registries. +name: Continuous Delivery (CD) + +# When it's time to do a release, +# do a full cross-platform build for all supported architectures and +# push all of them to Docker Hub and GitHub Container Registry (GHCR). + +on: + # "Build and publish" on merged + # Actually, there's no "merged" event. + # A "push" event is occurred after the pull request "close" event with "merged" true condition. + # The "push" event could replace "merged" event. + push: + branches: + - main + tags: + # Only trigger on semver shaped tags. + - "v*.*.*" + paths-ignore: + - "**.md" + - ".all-contributorsrc" + - ".gitignore" + - "LICENSE" + - "CODEOWNERS" + +env: + DOCKER_REGISTRY_NAME: cloudbaristaorg + GHCR_REGISTRY_NAME: ${{ github.repository_owner }} + IMAGE_NAME: ${{ github.event.repository.name }} + +jobs: + # The job key is "publish-container-image" + publish-container-image: + # Job name is "Publish a container image" + name: Publish a container image + if: github.repository_owner == 'm-cmp' && !contains(github.event.head_commit.message, '[skip cd]') + + # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) + # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners + runs-on: ubuntu-22.04 + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + # About billing for GitHub Packages + # https://docs.github.com/en/billing/managing-billing-for-github-packages/about-billing-for-github-packages + - name: Extract metadata from Git reference and GitHub events + id: meta + uses: docker/metadata-action@v5 + with: + images: | + # image name for Docker Hub + ${{env.DOCKER_REGISTRY_NAME}}/${{env.IMAGE_NAME}} + # image name for GitHub Container Registry (GHCR) + ghcr.io/${{env.GHCR_REGISTRY_NAME}}/${{env.IMAGE_NAME}} + tags: | + # See `tags` input: https://github.com/docker/metadata-action?tab=readme-ov-file#tags-input + ## Tags for a push tag event + # minimal (e.g., 1.2.3) + type=semver,enable=true,pattern={{version}} + # type=semver,pattern={{major}}.{{minor}} + ## Tags for a push branch event + # Tags to reflect the last commit of the active branch + type=edge,enable=true + ## Other types (currently the followings may be out of scope in this project) + ## Tags for a push branch event + # minimal (short sha) + # type=sha,enable=true,format=short + ## Tags for a push or pull_request event + # type=ref,event=branch + # type=ref,event=tag + # type=ref,event=pr + ## Tags for a schedule event - handlebars with timezone (e.g. 20200110-093000) + # type=schedule,enable=true,pattern={{date 'YYYYMMDD-hhmmss' tz='Asia/Tokyo'}} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: all + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + # TODO: Create a PAT with `read:packages` and `write:packages` scopes and save it as an Actions secret `CR_PAT` + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.CR_PAT }} + + - name: Build and publish + id: docker_build + uses: docker/build-push-action@v6 + with: + builder: ${{ steps.buildx.outputs.name }} + context: ./ + file: ./Dockerfile.mciammanager + target: prod + platforms: linux/amd64 # linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x,linux/arm/v6 + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} \ No newline at end of file diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 115021db..00818c35 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -106,7 +106,7 @@ jobs: - name: Verify versions run: | - node -v + node -vz npm -v yarn -v diff --git a/.gitignore b/.gitignore index c9c484c4..6348a09d 100644 --- a/.gitignore +++ b/.gitignore @@ -61,12 +61,6 @@ front/dist/ front/generated/ front/.vendor/ front/.pnp.* -front/.yarn/* -front/!.yarn/patches -front/!.yarn/plugins -front/!.yarn/releases -front/!.yarn/sdks -front/!.yarn/versions front-backup/* From 800a5a08ad5d1699bde27e870e5d69083a55dcf0 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Mon, 28 Oct 2024 23:17:45 +0000 Subject: [PATCH 18/43] fix refresh --- front/assets/js/common/api/http.js | 2 +- front/assets/js/common/cookie/authcookie.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/front/assets/js/common/api/http.js b/front/assets/js/common/api/http.js index 8f6ac247..a4537fd0 100644 --- a/front/assets/js/common/api/http.js +++ b/front/assets/js/common/api/http.js @@ -36,7 +36,7 @@ export async function commonAPIPost(url, data, attempt) { console.log("refreshCookieAccessToken success. Retrying request with refreshed token..."); return commonAPIPost(url, data, true); } else { - alert("you logged in other device : ", error.message); + alert("you logged in other device."); window.location = "/auth/login" return } diff --git a/front/assets/js/common/cookie/authcookie.js b/front/assets/js/common/cookie/authcookie.js index ffb58c2d..e11df85a 100644 --- a/front/assets/js/common/cookie/authcookie.js +++ b/front/assets/js/common/cookie/authcookie.js @@ -7,7 +7,7 @@ export async function updateCookieAccessToken(accessToken){ export async function refreshCookieAccessToken(){ const response = await webconsolejs["common/api/http"].commonAPIPostWithoutRetry("/api/auth/refresh") try{ - if (response.data.responseData.access_token === undefined || "") { + if (response.data.responseData.access_token === undefined || response.data.responseData.access_token === "") { return false }else { updateCookieAccessToken(response.data.responseData.access_token) From 7aae39acf46c1bca3e5f3ef53afcefc17ea4bb23 Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Wed, 30 Oct 2024 10:33:51 +0900 Subject: [PATCH 19/43] develop release --- .../js/common/api/services/monitoring_api.js | 2 +- .../assets/js/common/api/services/pmk_api.js | 26 +-- .../operation/manage/clustercreate.js | 192 ++++++++++++++---- .../operation/manage/clusterrecommendation.js | 1 - .../js/partials/operation/manage/mcicreate.js | 2 - .../operation/manage/serverrecommendation.js | 6 +- .../pages/_operation/manage/pmk.html | 4 +- .../manage/workloads/mciworkloads.html | 2 +- .../manage/workloads/pmkworkloads.html | 12 +- .../operation/manage/_clustercreate.html | 10 +- .../operation/manage/_serverlist_status.html | 8 +- 11 files changed, 195 insertions(+), 70 deletions(-) diff --git a/front/assets/js/common/api/services/monitoring_api.js b/front/assets/js/common/api/services/monitoring_api.js index 9bc41c8a..97d5fe6b 100644 --- a/front/assets/js/common/api/services/monitoring_api.js +++ b/front/assets/js/common/api/services/monitoring_api.js @@ -364,7 +364,7 @@ export async function getDetectionHistory() { queryParams: { "measurement": "cpu", // "measurement": "mem", - "start_time": "2024-10-24T12:31:00Z", + "start_time": "2024-10-29T12:31:00Z", // "end_time": "2002-07-02T06:49:28.605Z" }, } diff --git a/front/assets/js/common/api/services/pmk_api.js b/front/assets/js/common/api/services/pmk_api.js index e15dad2e..8c6d716c 100644 --- a/front/assets/js/common/api/services/pmk_api.js +++ b/front/assets/js/common/api/services/pmk_api.js @@ -58,19 +58,20 @@ export async function CreateCluster(clusterName, selectedConnection, clusterVers obj['subnetIds'] = [selectedSubnet]; // Subnet ID (배열로 전달) obj['securityGroupIds'] = [selectedSecurityGroup]; // Security Group ID (배열로 전달) + console.log("Create_Cluster_Config_Arr",Create_Cluster_Config_Arr) // NodeGroupList가 있으면 추가 (조건부로 추가) - if (Create_Cluster_Config_Arr.k8sNodeGroupList && Create_Cluster_Config_Arr.k8sNodeGroupList.length > 0) { - obj['k8sNodeGroupList'] = Create_Cluster_Config_Arr.k8sNodeGroupList.map(group => ({ - desiredNodeSize: group.desiredNodeSize || "1", - imageId: group.imageId || "", - maxNodeSize: group.maxNodeSize || "3", - minNodeSize: group.minNodeSize || "1", - name: group.name || "ng-01", - onAutoScaling: group.onAutoScaling || "false", - rootDiskSize: group.rootDiskSize || "40", - rootDiskType: group.rootDiskType || "cloud_essd", - specId: group.specId || "", - sshKeyId: group.sshKeyId || "" + if (Create_Cluster_Config_Arr[0].k8sNodeGroupList && Create_Cluster_Config_Arr[0].k8sNodeGroupList.length > 0) { + obj['k8sNodeGroupList'] = Create_Cluster_Config_Arr[0].k8sNodeGroupList.map(group => ({ + desiredNodeSize: group.desiredNodeSize, + imageId: group.imageId, + maxNodeSize: group.maxNodeSize, + minNodeSize: group.minNodeSize, + name: group.name, + onAutoScaling: group.onAutoScaling, + rootDiskSize: group.rootDiskSize, + rootDiskType: group.rootDiskType, + specId: group.specId, + sshKeyId: group.sshKeyId })); } @@ -86,6 +87,7 @@ export async function CreateCluster(clusterName, selectedConnection, clusterVers "vNetId": obj['vNetId'], "subnetIds": obj['subnetIds'], "securityGroupIds": obj['securityGroupIds'], + "k8sNodeGroupList": obj['k8sNodeGroupList'] } } diff --git a/front/assets/js/partials/operation/manage/clustercreate.js b/front/assets/js/partials/operation/manage/clustercreate.js index 0a653ccf..7f85b311 100644 --- a/front/assets/js/partials/operation/manage/clustercreate.js +++ b/front/assets/js/partials/operation/manage/clustercreate.js @@ -284,7 +284,7 @@ var createMciListObj = new Object(); var isVm = false // mci 생성(false) / vm 추가(true) var Create_Cluster_Config_Arr = new Array(); var Create_Node_Config_Arr = new Array(); -var express_data_cnt = 0 +var nodeGroup_data_cnt = 0 // 서버 더하기버튼 클릭시 서버정보 입력area 보이기/숨기기 @@ -592,52 +592,152 @@ export async function createCluster() { } // nodegroup configuration done 클릭시 +// export function clusterFormDone_btn() { +// $("#c_name").val($("#cluster_name").val()) +// $("#c_desc").val($("#cluster_desc").val()) +// $("#c_connection").val($("#cluster_connection").val()) +// $("#c_vpc").val($("#cluster_vpc").val()) +// $("#c_subnet").val($("#subent").val()) +// $("#c_sg").val($("#cluster_sg").val()) +// $("#c_version").val($("#cluster_version").val()) + +// var cluster_form = {} +// cluster_form["connectionName"] = $("#c_connection").val(); // Connection Name +// cluster_form["name"] = $("#c_name").val(); // Cluster Name +// cluster_form["vNetId"] = $("#c_vpc").val(); // VPC ID +// cluster_form["subnetIds"] = [$("#c_subnet").val()]; // Subnet IDs (Array) +// cluster_form["securityGroupIds"] = [$("#c_sg").val()]; // Security Group IDs (Array) +// cluster_form["version"] = $("#c_version").val(); // K8s Cluster Version +// cluster_form["description"] = $("#c_desc").val(); // Optional Description + +// // NodeGroupList 추가 (조건부로 추가, 있을 때만 넣음) +// var nodeGroupName = $("#nodegroup_name").val(); // 예: Node Group Name 필드 +// if (nodeGroupName) { +// cluster_form["k8sNodeGroupList"] = [ +// { +// "desiredNodeSize": $("#node_desirednodesize").val(), +// "imageId": $("#node_imageid").val(), +// "maxNodeSize": $("#node_maxnodesize").val(), +// "minNodeSize": $("#node_minnodesize").val(), +// "name": nodeGroupName, +// "onAutoScaling": $("#node_autoscaling").val(), +// "rootDiskSize": $("#node_rootdisksize").val(), +// "rootDiskType": $("#node_rootdisk").val(), +// "specId": $("#node_specid").val(), +// "sshKeyId": $("#node_sshkey").val() +// } +// ]; +// } + +// Create_Cluster_Config_Arr.push(cluster_form) +// console.log("express btn click and express form data : ", Create_Cluster_Config_Arr) + +// var div = document.getElementById("nodegroup_configuration"); +// webconsolejs["partials/layout/navigatePages"].toggleSubElement(div) + +// // TODO: + 박스 추가 +// } export function clusterFormDone_btn() { - $("#c_name").val($("#cluster_name").val()) - $("#c_desc").val($("#cluster_desc").val()) - $("#c_connection").val($("#cluster_connection").val()) - $("#c_vpc").val($("#cluster_vpc").val()) - $("#c_subnet").val($("#subent").val()) - $("#c_sg").val($("#cluster_sg").val()) - $("#c_version").val($("#cluster_version").val()) - - var cluster_form = {} - cluster_form["connectionName"] = $("#c_connection").val(); // Connection Name - cluster_form["name"] = $("#c_name").val(); // Cluster Name - cluster_form["vNetId"] = $("#c_vpc").val(); // VPC ID - cluster_form["subnetIds"] = [$("#c_subnet").val()]; // Subnet IDs (Array) - cluster_form["securityGroupIds"] = [$("#c_sg").val()]; // Security Group IDs (Array) - cluster_form["version"] = $("#c_version").val(); // K8s Cluster Version - cluster_form["description"] = $("#c_desc").val(); // Optional Description + // 클러스터 기본 정보 할당 + const connectionName = $("#cluster_connection").val(); + const clusterName = $("#cluster_name").val(); + const vNetId = $("#cluster_vpc").val(); + const subnetId = $("#subnet").val(); + const securityGroupId = $("#cluster_sg").val(); + const version = $("#cluster_version").val(); + const description = $("#cluster_desc").val(); + + console.log("Connection Name:", connectionName); + console.log("Cluster Name:", clusterName); + console.log("VNet ID:", vNetId); + console.log("Subnet ID:", subnetId); + console.log("Security Group ID:", securityGroupId); + console.log("Version:", version); + console.log("Description:", description); + + var cluster_form = { + connectionName: connectionName || "", + name: clusterName || "", + vNetId: vNetId || "", + subnetIds: [subnetId || ""], + securityGroupIds: [securityGroupId || ""], + version: version || "", + description: description || "" + }; // NodeGroupList 추가 (조건부로 추가, 있을 때만 넣음) - var nodeGroupName = $("#nodegroup_name").val(); // 예: Node Group Name 필드 + const nodeGroupName = $("#node_name").val(); + const desiredNodeSize = $("#node_desirednodesize").val(); + const imageId = $("#node_imageid").val(); + const maxNodeSize = $("#node_maxnodesize").val(); + const minNodeSize = $("#node_minnodesize").val(); + const onAutoScaling = $("#node_autoscaling").val(); + const rootDiskSize = $("#node_rootdisksize").val(); + const rootDiskType = $("#node_rootdisk").val(); + const specId = $("#node_specid").val(); + const sshKeyId = $("#node_sshkey").val(); + + console.log("Node Group Name:", nodeGroupName); + console.log("Desired Node Size:", desiredNodeSize); + console.log("Image ID:", imageId); + console.log("Max Node Size:", maxNodeSize); + console.log("Min Node Size:", minNodeSize); + console.log("Auto Scaling:", onAutoScaling); + console.log("Root Disk Size:", rootDiskSize); + console.log("Root Disk Type:", rootDiskType); + console.log("Spec ID:", specId); + console.log("SSH Key ID:", sshKeyId); + if (nodeGroupName) { cluster_form["k8sNodeGroupList"] = [ { - "desiredNodeSize": $("#nodegroup_desiredsize").val(), - "imageId": $("#nodegroup_imageid").val(), - "maxNodeSize": $("#nodegroup_maxsize").val(), - "minNodeSize": $("#nodegroup_minsize").val(), + "desiredNodeSize": desiredNodeSize || "", + "imageId": imageId || "", + "maxNodeSize": maxNodeSize || "", + "minNodeSize": minNodeSize || "", "name": nodeGroupName, - "onAutoScaling": $("#nodegroup_autoscaling").is(':checked') ? "true" : "false", - "rootDiskSize": $("#nodegroup_rootsize").val(), - "rootDiskType": $("#nodegroup_roottype").val(), - "specId": $("#nodegroup_specid").val(), - "sshKeyId": $("#nodegroup_sshkeyid").val() + "onAutoScaling": onAutoScaling || "false", + "rootDiskSize": rootDiskSize || "", + "rootDiskType": rootDiskType || "", + "specId": specId || "", + "sshKeyId": sshKeyId || "" } ]; } - - Create_Cluster_Config_Arr.push(cluster_form) - console.log("express btn click and express form data : ", cluster_form) - - var div = document.getElementById("nodegroup_configuration"); - webconsolejs["partials/layout/navigatePages"].toggleSubElement(div) - - // TODO: + 박스 추가 + var nodeGroup_name = cluster_form.name + // var nodeGroup_cnt = parseInt(cluster_form.k8sNodeGroupListdesiredNodeSize) + var nodeGroup_cnt = 1 + var add_nodegroup_html = "" + Create_Cluster_Config_Arr.push(cluster_form); + console.log("Final Cluster Config:", Create_Cluster_Config_Arr); + var displayNodegroupCnt = '(' + nodeGroup_cnt + ')' + + add_nodegroup_html += '
  • ' + + + nodeGroup_name + displayNodegroupCnt + + + '
  • '; + var div = document.getElementById("nodegroup_configuration"); + webconsolejs["partials/layout/navigatePages"].toggleSubElement(div); + var ngEleId = "nodegroup" + + var element = $("#" + ngEleId + "_plusIcon"); + console.log("Element to remove:", element); // 선택된 요소 확인 + if (element.length) { + element.remove(); + console.log("Element removed successfully"); + } else { + console.log("Element not found"); + } + + $("#" + ngEleId + "_plusIcon").remove(); + $("#" + ngEleId + "_list").append(add_nodegroup_html) + $("#" + ngEleId + "_list").prepend(getPlusVm(ngEleId)); + nodeGroup_data_cnt++ + $("#express_form").each(function () { + this.reset(); + }) } - export function addNodeFormDone_btn() { $("#n_name").val($("#node_name").val()) @@ -663,13 +763,33 @@ export function addNodeFormDone_btn() { node_form["specId"] = $("#n_specid").val(); node_form["sshKeyId"] = $("#n_sshkey").val(); + var nodeGroup_name = node_form.name + var nodeGroup_cnt = parseInt(node_form.desiredNodeSize) + var add_nodegroup_html = "" Create_Node_Config_Arr.push(node_form) console.log("express btn click and express form data : ", node_form) + + var displayNodegroupCnt = '(' + nodeGroup_cnt + ')' + + add_nodegroup_html += '
  • ' + + + nodeGroup_name + displayNodegroupCnt + + + '
  • '; var div = document.getElementById("nodegroup_configuration"); webconsolejs["partials/layout/navigatePages"].toggleSubElement(div) // TODO: + 박스 추가 + var ngEleId = "nodegroup" + $("#" + ngEleId + "_plusVmIcon").remove(); + $("#" + ngEleId + "_list").append(add_nodegroup_html) + $("#" + ngEleId + "_list").prepend(getPlusVm(vmEleId)); } +export function view_ngForm(cnt){ + console.log('view simple cnt : ', cnt); + var div = document.getElementById("nodegroup_configuration"); + webconsolejs["partials/layout/navigatePages"].toggleElement(div) +} diff --git a/front/assets/js/partials/operation/manage/clusterrecommendation.js b/front/assets/js/partials/operation/manage/clusterrecommendation.js index 86a196ee..d7f71205 100644 --- a/front/assets/js/partials/operation/manage/clusterrecommendation.js +++ b/front/assets/js/partials/operation/manage/clusterrecommendation.js @@ -356,7 +356,6 @@ export async function getRecommendVmInfo() { } // TODO : 선택된 provider 필터 - console.log("asdasdasd", respData.responseData) recommendVmSpecListObj = respData.responseData recommendTable.setData(recommendVmSpecListObj) diff --git a/front/assets/js/partials/operation/manage/mcicreate.js b/front/assets/js/partials/operation/manage/mcicreate.js index fb98c8b9..dff4f394 100644 --- a/front/assets/js/partials/operation/manage/mcicreate.js +++ b/front/assets/js/partials/operation/manage/mcicreate.js @@ -331,8 +331,6 @@ export async function displayNewServerForm() { // express모드 -> Done버튼 클릭 시 export function expressDone_btn() { - console.log("hi") - // express 는 common resource를 하므로 별도로 처리(connection, spec만) $("#p_provider").val($("#ep_provider").val()) $("#p_connectionName").val($("#ep_connectionName").val()) diff --git a/front/assets/js/partials/operation/manage/serverrecommendation.js b/front/assets/js/partials/operation/manage/serverrecommendation.js index 93d8e887..ac2dd1b8 100644 --- a/front/assets/js/partials/operation/manage/serverrecommendation.js +++ b/front/assets/js/partials/operation/manage/serverrecommendation.js @@ -430,7 +430,11 @@ export async function applySpecInfo() { var specName = selectedSpecs.cspSpecName var imageName = await availableVMImageBySpec(selectedSpecs.id) var commonSpecId = selectedSpecs.id // common specid for create dynamic mci - + if (provider === "azure") { + imageName = "azure+koreacentral+ubuntu22.04"; + specName = "azure+koreacentral+standard_b2ats_v2"; + } + console.log("commonSpecId", commonSpecId) console.log("connectionName", selectedSpecs.connectionName) console.log("providerName", selectedSpecs.providerName) diff --git a/front/templates/pages/_operation/manage/pmk.html b/front/templates/pages/_operation/manage/pmk.html index 230ef4fd..fb000602 100644 --- a/front/templates/pages/_operation/manage/pmk.html +++ b/front/templates/pages/_operation/manage/pmk.html @@ -479,10 +479,10 @@

    Create Cluster

    -
      +
      • + diff --git a/front/templates/pages/operations/manage/workloads/mciworkloads.html b/front/templates/pages/operations/manage/workloads/mciworkloads.html index 70944f2e..b2fadbea 100644 --- a/front/templates/pages/operations/manage/workloads/mciworkloads.html +++ b/front/templates/pages/operations/manage/workloads/mciworkloads.html @@ -568,7 +568,7 @@

        Create MCI

        id="mci_plusVmIcon" onclick="webconsolejs['partials/operation/manage/mcicreate'].displayNewServerForm()" > - + + + VM
    diff --git a/front/templates/pages/operations/manage/workloads/pmkworkloads.html b/front/templates/pages/operations/manage/workloads/pmkworkloads.html index 9f659754..65881d88 100644 --- a/front/templates/pages/operations/manage/workloads/pmkworkloads.html +++ b/front/templates/pages/operations/manage/workloads/pmkworkloads.html @@ -479,13 +479,13 @@

    Create Cluster

    -
      +
      • - + + + nodeGroup
    @@ -506,7 +506,7 @@

    Create Cluster

    - +
    @@ -671,10 +671,10 @@

    Add node

    -
      +
      • + diff --git a/front/templates/partials/operation/manage/_clustercreate.html b/front/templates/partials/operation/manage/_clustercreate.html index 5611fb99..e286d8eb 100644 --- a/front/templates/partials/operation/manage/_clustercreate.html +++ b/front/templates/partials/operation/manage/_clustercreate.html @@ -36,7 +36,8 @@

        NodeGroup Configuration

    @@ -49,13 +50,14 @@

    NodeGroup Configuration

    > - + +
    minNodeSize / maxNodeSize
    @@ -172,7 +174,7 @@

    NodeGroup Configuration

    diff --git a/front/templates/partials/operation/manage/_serverlist_status.html b/front/templates/partials/operation/manage/_serverlist_status.html index 369d1620..aff10088 100644 --- a/front/templates/partials/operation/manage/_serverlist_status.html +++ b/front/templates/partials/operation/manage/_serverlist_status.html @@ -150,7 +150,7 @@

    class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot MCIS ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCIS ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume MCIS ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate MCIS ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" > Date: Wed, 30 Oct 2024 10:48:55 +0900 Subject: [PATCH 20/43] plus button --- .../js/partials/operation/manage/clustercreate.js | 14 ++++++++++---- .../js/partials/operation/manage/mcicreate.js | 2 +- .../operations/manage/workloads/mciworkloads.html | 2 +- .../operations/manage/workloads/pmkworkloads.html | 6 +++--- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/front/assets/js/partials/operation/manage/clustercreate.js b/front/assets/js/partials/operation/manage/clustercreate.js index 7f85b311..89b3e581 100644 --- a/front/assets/js/partials/operation/manage/clustercreate.js +++ b/front/assets/js/partials/operation/manage/clustercreate.js @@ -281,7 +281,7 @@ async function updateConfigurationFilltering() { } var createMciListObj = new Object(); -var isVm = false // mci 생성(false) / vm 추가(true) +var isNodeGroup = false // mci 생성(false) / vm 추가(true) var Create_Cluster_Config_Arr = new Array(); var Create_Node_Config_Arr = new Array(); var nodeGroup_data_cnt = 0 @@ -354,7 +354,7 @@ function getPlusVm(vmElementId) { var append = ""; append = append + '
  • '; - append = append + "+" + append = append + "+ NodeGroup" append = append + '
  • '; return append; } @@ -434,7 +434,7 @@ export async function addNewNodeGroup() { $("#node_cluster_version").html(''); - isVm = true + isNodeGroup = true } export async function addNewPmk() { @@ -458,7 +458,7 @@ export async function addNewPmk() { console.log("addNewPmk") - isVm = true + // isNodeGroup = true } export async function changeCloudConnection(connectionName) { @@ -720,6 +720,10 @@ export function clusterFormDone_btn() { var div = document.getElementById("nodegroup_configuration"); webconsolejs["partials/layout/navigatePages"].toggleSubElement(div); var ngEleId = "nodegroup" + if (isNodeGroup) { + ngEleId = "addnodegroup" + } + var element = $("#" + ngEleId + "_plusIcon"); console.log("Element to remove:", element); // 선택된 요소 확인 @@ -737,7 +741,9 @@ export function clusterFormDone_btn() { $("#express_form").each(function () { this.reset(); }) + // } + export function addNodeFormDone_btn() { $("#n_name").val($("#node_name").val()) diff --git a/front/assets/js/partials/operation/manage/mcicreate.js b/front/assets/js/partials/operation/manage/mcicreate.js index dff4f394..aa2da877 100644 --- a/front/assets/js/partials/operation/manage/mcicreate.js +++ b/front/assets/js/partials/operation/manage/mcicreate.js @@ -472,7 +472,7 @@ function getPlusVm(vmElementId) { var append = ""; append = append + '
  • '; - append = append + "+" + append = append + "+ VM" append = append + '
  • '; return append; } diff --git a/front/templates/pages/operations/manage/workloads/mciworkloads.html b/front/templates/pages/operations/manage/workloads/mciworkloads.html index b2fadbea..005ec3a7 100644 --- a/front/templates/pages/operations/manage/workloads/mciworkloads.html +++ b/front/templates/pages/operations/manage/workloads/mciworkloads.html @@ -697,7 +697,7 @@

    Extend VM

    id="vm_plusVmIcon" onclick="webconsolejs['partials/operation/manage/mcicreate'].displayNewServerForm()" > - + + + VM
    diff --git a/front/templates/pages/operations/manage/workloads/pmkworkloads.html b/front/templates/pages/operations/manage/workloads/pmkworkloads.html index 65881d88..ebd9020a 100644 --- a/front/templates/pages/operations/manage/workloads/pmkworkloads.html +++ b/front/templates/pages/operations/manage/workloads/pmkworkloads.html @@ -671,13 +671,13 @@

    Add node

    -
      +
      • - + + + NodeGroup
    From 9ffd6c23d2637b1870e0f923a9ebf4a313ebb342 Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Wed, 30 Oct 2024 10:52:53 +0900 Subject: [PATCH 21/43] check change --- .../partials/operation/manage/_serverlist_status.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/front/templates/partials/operation/manage/_serverlist_status.html b/front/templates/partials/operation/manage/_serverlist_status.html index aff10088..2a8aa608 100644 --- a/front/templates/partials/operation/manage/_serverlist_status.html +++ b/front/templates/partials/operation/manage/_serverlist_status.html @@ -202,7 +202,7 @@

    class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" > Date: Wed, 30 Oct 2024 10:53:47 +0900 Subject: [PATCH 22/43] change mci to vm --- .../partials/operation/manage/_serverlist_status.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/front/templates/partials/operation/manage/_serverlist_status.html b/front/templates/partials/operation/manage/_serverlist_status.html index 2a8aa608..4522b95a 100644 --- a/front/templates/partials/operation/manage/_serverlist_status.html +++ b/front/templates/partials/operation/manage/_serverlist_status.html @@ -150,7 +150,7 @@

    class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" > Date: Wed, 30 Oct 2024 10:55:45 +0900 Subject: [PATCH 23/43] change text --- .../partials/operation/manage/_serverlist_status.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/front/templates/partials/operation/manage/_serverlist_status.html b/front/templates/partials/operation/manage/_serverlist_status.html index 4522b95a..7a67ec00 100644 --- a/front/templates/partials/operation/manage/_serverlist_status.html +++ b/front/templates/partials/operation/manage/_serverlist_status.html @@ -150,7 +150,7 @@

    class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'VmReboot', 'Would you like to reboot the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'reboot')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'VmSuspend', 'Would you like to suspend the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'suspend')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'VmResume', 'Would you like to resume the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'resume')" > class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'VmTerminate', 'Would you like to terminate the vm ?', 'pages/operation/manage/mci.changeVmLifeCycle', 'terminate')" > Date: Wed, 30 Oct 2024 13:25:58 +0900 Subject: [PATCH 24/43] =?UTF-8?q?commonConfirmModal=20function=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/assets/js/partials/layout/modal.js | 16 ++++++++++++++++ front/templates/partials/layout/_modal.html | 15 +++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/front/assets/js/partials/layout/modal.js b/front/assets/js/partials/layout/modal.js index 2e1d3262..1c01b943 100644 --- a/front/assets/js/partials/layout/modal.js +++ b/front/assets/js/partials/layout/modal.js @@ -15,6 +15,22 @@ export function commonModal(elm, title, content, func, argument) { }; } +// confirmModal을 script로 띄울 때 사용 +export function commonConfirmModal(targetModal, title, content, func, argument) { + const modalId = 'commonDefaultModal'; // 모달의 ID 설정 + const modal = new bootstrap.Modal(document.getElementById(modalId)); + + const funcArr = func.split("."); + document.getElementById(`${targetModal}-title`).innerText = title + document.getElementById(`${targetModal}-content`).innerText = content + document.getElementById(`${targetModal}-confirm-btn`).onclick = function () { + const executefunction = `webconsolejs["${funcArr[0]}"].${funcArr[1]}('${argument}')`; + eval(executefunction); + }; + + modal.show(); // 모달 표시 +} + // default modal show export function commonShowDefaultModal(title, content) { const modalId = 'commonDefaultModal'; // 모달의 ID 설정 diff --git a/front/templates/partials/layout/_modal.html b/front/templates/partials/layout/_modal.html index e3264acf..771ae07e 100644 --- a/front/templates/partials/layout/_modal.html +++ b/front/templates/partials/layout/_modal.html @@ -50,4 +50,19 @@

    +
    + + + \ No newline at end of file From b54636ec080be48a4b62d54ff36ebd9fea972c7b Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Wed, 30 Oct 2024 14:02:15 +0900 Subject: [PATCH 25/43] add del func of mci and vm --- .../assets/js/common/api/services/mci_api.js | 76 ++++++++++++++----- front/assets/js/pages/operation/manage/mci.js | 22 +++++- .../manage/workloads/mciworkloads.html | 11 ++- .../operation/manage/_serverlist_status.html | 4 +- 4 files changed, 87 insertions(+), 26 deletions(-) diff --git a/front/assets/js/common/api/services/mci_api.js b/front/assets/js/common/api/services/mci_api.js index 558b6ae1..ec12a2d6 100644 --- a/front/assets/js/common/api/services/mci_api.js +++ b/front/assets/js/common/api/services/mci_api.js @@ -54,6 +54,7 @@ export function mciLifeCycle(type, checked_array, nsId) { console.log("mciLifeCycle option : ", type) console.log("selected mci : ", checked_array) + for (const mci of checked_array) { console.log(mci.id) let data = { @@ -62,7 +63,7 @@ export function mciLifeCycle(type, checked_array, nsId) { mciId: mci.id, }, queryParams: { - "action": type + "action": type, } }; let controller = "/api/" + "mc-infra-manager/" + "GetControlMci"; @@ -74,6 +75,47 @@ export function mciLifeCycle(type, checked_array, nsId) { } } +export function mciDelete(checked_array, nsId) { + for (const mci of checked_array) { + console.log(mci.id) + let data = { + pathParams: { + nsId: nsId, + mciId: mci.id, + }, + queryParams: { + option: "force" + } + }; + let controller = "/api/" + "mc-infra-manager/" + "Delmci"; + let response = webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ); + console.log("mciLifeCycle response : ", response) + } +} + +export function vmDelete(mciId, nsId, vmId) { + let data = { + pathParams: { + nsId: nsId, + mciId: mciId, + vmId: vmId + }, + queryParams: { + "option": "force" + } + }; + let controller = "/api/" + "mc-infra-manager/" + "Delmcivm"; + let response = webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ); + console.log("vmLifeCycle response : ", response) + +} + // vmLifeCycle 제어 option : reboot / suspend / resume / terminate export function vmLifeCycle(type, mciId, nsId, vmid) { @@ -173,7 +215,7 @@ export async function mciRecommendVm(data) { // get all registered region list export async function getProviderList() { - + let controller = "/api/" + "mc-infra-manager/" + "GetProviderList"; let response = await webconsolejs["common/api/http"].commonAPIPost( controller, @@ -185,17 +227,17 @@ export async function getProviderList() { export async function getRegionList() { -// let data = { - // pathParams: { - // providerName: "AWS", - // regionName: "aws-ca-west-1", - // } - // }; - + // let data = { + // pathParams: { + // providerName: "AWS", + // regionName: "aws-ca-west-1", + // } + // }; + let controller = "/api/" + "mc-infra-manager/" + "GetRegionList"; let response = await webconsolejs["common/api/http"].commonAPIPost( controller, - + ); console.log("getRegionList response : ", response) @@ -205,18 +247,18 @@ export async function getRegionList() { export async function getCloudConnection() { - // test + // test let data = { queryParams: { "filterVerified": true } }; - let controller = "/api/" + "mc-infra-manager/" + "GetConnConfigList"; - let response = await webconsolejs["common/api/http"].commonAPIPost( - controller, - data - ); - + let controller = "/api/" + "mc-infra-manager/" + "GetConnConfigList"; + let response = await webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ); + return response.data.responseData.connectionconfig } diff --git a/front/assets/js/pages/operation/manage/mci.js b/front/assets/js/pages/operation/manage/mci.js index 34913fd4..cb8637d7 100644 --- a/front/assets/js/pages/operation/manage/mci.js +++ b/front/assets/js/pages/operation/manage/mci.js @@ -68,7 +68,7 @@ async function initMci() { //getMciList();// project가 선택되어 있으면 mci목록을 조회한다. var respMciList = await webconsolejs["common/api/services/mci_api"].getMciList(selectedNsId); - console.log("respMciListrespMciListrespMciList",respMciList) + console.log("respMciListrespMciListrespMciList", respMciList) getMciListCallbackSuccess(selectedProjectId, respMciList); @@ -170,6 +170,20 @@ function setMciInfoData(mciData) { } +// mci 삭제 +export function deleteMci() { + var selectedNsId = selectedWorkspaceProject.nsId; + webconsolejs["common/api/services/mci_api"].mciDelete(checked_array, selectedNsId) + +} + +// vm 삭제 +export function deleteVm() { + var selectedNsId = selectedWorkspaceProject.nsId; + webconsolejs["common/api/services/mci_api"].vmDelete(currentMciId, selectedNsId, selectedVmId) + +} + // mci life cycle 변경 export function changeMciLifeCycle(type) { @@ -365,7 +379,7 @@ export async function vmDetailInfo(mciID, mciName, vmID) { var vmDetail = data.cspViewVmDetail; // var vmDetailKeyValueList = vmDetail.KeyValueList var addtionalDetails = data.addtionalDetails - console.log("addtionalDetails",addtionalDetails) + console.log("addtionalDetails", addtionalDetails) var architecture = ""; var vpcId = "" var subnetId = "" @@ -374,7 +388,7 @@ export async function vmDetailInfo(mciID, mciName, vmID) { for (var i = 0; i < addtionalDetails.length; i++) { if (addtionalDetails[i].key === "Architecture") { architecture = addtionalDetails[i].value; - break; + break; } } } @@ -382,7 +396,7 @@ export async function vmDetailInfo(mciID, mciName, vmID) { var subnetId = data.cspSubnetId var vmSpecName = data.cspSpecName var vpcSystemId = data.vNetId - + var subnetSystemId = data.subnetId var eth = data.networkInterface diff --git a/front/templates/pages/operations/manage/workloads/mciworkloads.html b/front/templates/pages/operations/manage/workloads/mciworkloads.html index 005ec3a7..0ef14875 100644 --- a/front/templates/pages/operations/manage/workloads/mciworkloads.html +++ b/front/templates/pages/operations/manage/workloads/mciworkloads.html @@ -172,7 +172,7 @@

    List of MCI

    class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'reboot')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciReboot', 'Would you like to reboot MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'reboot')" > List of MCI class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'resume')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciResume', 'Would you like to resume MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'resume')" > List of MCI class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'terminate')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciTerminate', 'Would you like to terminate MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'terminate')" > List of MCI New - + New - + Date: Wed, 30 Oct 2024 14:19:02 +0900 Subject: [PATCH 26/43] =?UTF-8?q?commonConfirmModal=20=EB=B3=B4=EC=99=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/assets/js/partials/layout/modal.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/front/assets/js/partials/layout/modal.js b/front/assets/js/partials/layout/modal.js index 1c01b943..23e3e681 100644 --- a/front/assets/js/partials/layout/modal.js +++ b/front/assets/js/partials/layout/modal.js @@ -15,15 +15,21 @@ export function commonModal(elm, title, content, func, argument) { }; } -// confirmModal을 script로 띄울 때 사용 -export function commonConfirmModal(targetModal, title, content, func, argument) { - const modalId = 'commonDefaultModal'; // 모달의 ID 설정 - const modal = new bootstrap.Modal(document.getElementById(modalId)); +/* + confirmModal을 script로 띄울 때 사용 + // targetModalId : modal.html에 정의된 모달의 ID + // title : modal의 title text + // content : modal에서 표시하는 message text + // func : confirm시 동작할 function 정의(경로.function) + // argument : function에 전달할 argument +*/ +export function commonConfirmModal(targetModalId, title, content, func, argument) { + const modal = new bootstrap.Modal(document.getElementById(targetModalId)); const funcArr = func.split("."); - document.getElementById(`${targetModal}-title`).innerText = title - document.getElementById(`${targetModal}-content`).innerText = content - document.getElementById(`${targetModal}-confirm-btn`).onclick = function () { + document.getElementById(`${targetModalId}-title`).innerText = title + document.getElementById(`${targetModalId}-content`).innerText = content + document.getElementById(`${targetModalId}-confirm-btn`).onclick = function () { const executefunction = `webconsolejs["${funcArr[0]}"].${funcArr[1]}('${argument}')`; eval(executefunction); }; From 38f0274ef2eb297c4bc71fb16e0d67479e3fe85c Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Wed, 30 Oct 2024 06:03:22 +0000 Subject: [PATCH 27/43] update CI --- .github/workflows/continuous-integration.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 00818c35..60871b55 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -104,12 +104,6 @@ jobs: - name: Install Yarn 4.1.0 run: corepack prepare yarn@4.1.0 --activate - - name: Verify versions - run: | - node -vz - npm -v - yarn -v - - name: Install npm dependencies run: npm install working-directory: ./front From f5449dab054bf8a6a53412ba9fbb35fbef614d71 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Wed, 30 Oct 2024 06:11:45 +0000 Subject: [PATCH 28/43] update ci yarn cache clean --- .github/workflows/continuous-integration.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 60871b55..8827a50b 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -108,8 +108,11 @@ jobs: run: npm install working-directory: ./front + - name: Clean Yarn cache + run: yarn cache clean + - name: Install Yarn dependencies with cache check - run: yarn install --immutable --check-cache + run: yarn install --immutable working-directory: ./front - name: Build Buffalo application From aaa652d5a627c64d9c35e4624d18256effa5fdc2 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Wed, 30 Oct 2024 06:15:49 +0000 Subject: [PATCH 29/43] add working-directory: ./front --- .github/workflows/continuous-integration.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 8827a50b..a327c811 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -110,7 +110,8 @@ jobs: - name: Clean Yarn cache run: yarn cache clean - + working-directory: ./front + - name: Install Yarn dependencies with cache check run: yarn install --immutable working-directory: ./front From df603574de3c19afb37cfbc56cf33dc8c619ab8e Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Wed, 30 Oct 2024 06:17:13 +0000 Subject: [PATCH 30/43] ignore cd --- .github/workflows/continuous-delivery.yaml | 124 --------------------- 1 file changed, 124 deletions(-) delete mode 100644 .github/workflows/continuous-delivery.yaml diff --git a/.github/workflows/continuous-delivery.yaml b/.github/workflows/continuous-delivery.yaml deleted file mode 100644 index ae184e15..00000000 --- a/.github/workflows/continuous-delivery.yaml +++ /dev/null @@ -1,124 +0,0 @@ -# This workflow performs continuous delivery (CD). -# This workflow will build a container image and publish it to container registries. -name: Continuous Delivery (CD) - -# When it's time to do a release, -# do a full cross-platform build for all supported architectures and -# push all of them to Docker Hub and GitHub Container Registry (GHCR). - -on: - # "Build and publish" on merged - # Actually, there's no "merged" event. - # A "push" event is occurred after the pull request "close" event with "merged" true condition. - # The "push" event could replace "merged" event. - push: - branches: - - main - tags: - # Only trigger on semver shaped tags. - - "v*.*.*" - paths-ignore: - - "**.md" - - ".all-contributorsrc" - - ".gitignore" - - "LICENSE" - - "CODEOWNERS" - -env: - DOCKER_REGISTRY_NAME: cloudbaristaorg - GHCR_REGISTRY_NAME: ${{ github.repository_owner }} - IMAGE_NAME: ${{ github.event.repository.name }} - -jobs: - # The job key is "publish-container-image" - publish-container-image: - # Job name is "Publish a container image" - name: Publish a container image - if: github.repository_owner == 'm-cmp' && !contains(github.event.head_commit.message, '[skip cd]') - - # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) - # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners - runs-on: ubuntu-22.04 - - steps: - - name: Checkout source code - uses: actions/checkout@v4 - - # About billing for GitHub Packages - # https://docs.github.com/en/billing/managing-billing-for-github-packages/about-billing-for-github-packages - - name: Extract metadata from Git reference and GitHub events - id: meta - uses: docker/metadata-action@v5 - with: - images: | - # image name for Docker Hub - ${{env.DOCKER_REGISTRY_NAME}}/${{env.IMAGE_NAME}} - # image name for GitHub Container Registry (GHCR) - ghcr.io/${{env.GHCR_REGISTRY_NAME}}/${{env.IMAGE_NAME}} - tags: | - # See `tags` input: https://github.com/docker/metadata-action?tab=readme-ov-file#tags-input - ## Tags for a push tag event - # minimal (e.g., 1.2.3) - type=semver,enable=true,pattern={{version}} - # type=semver,pattern={{major}}.{{minor}} - ## Tags for a push branch event - # Tags to reflect the last commit of the active branch - type=edge,enable=true - ## Other types (currently the followings may be out of scope in this project) - ## Tags for a push branch event - # minimal (short sha) - # type=sha,enable=true,format=short - ## Tags for a push or pull_request event - # type=ref,event=branch - # type=ref,event=tag - # type=ref,event=pr - ## Tags for a schedule event - handlebars with timezone (e.g. 20200110-093000) - # type=schedule,enable=true,pattern={{date 'YYYYMMDD-hhmmss' tz='Asia/Tokyo'}} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v3 - - - name: Cache Docker layers - uses: actions/cache@v4 - with: - path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-buildx- - - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - # TODO: Create a PAT with `read:packages` and `write:packages` scopes and save it as an Actions secret `CR_PAT` - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.CR_PAT }} - - - name: Build and publish - id: docker_build - uses: docker/build-push-action@v6 - with: - builder: ${{ steps.buildx.outputs.name }} - context: ./ - file: ./Dockerfile.mciammanager - target: prod - platforms: linux/amd64 # linux/arm/v7,linux/arm64,linux/386,linux/ppc64le,linux/s390x,linux/arm/v6 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - cache-from: type=local,src=/tmp/.buildx-cache - cache-to: type=local,dest=/tmp/.buildx-cache - - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} \ No newline at end of file From e814e2fccc8e505fd696ea0c77f1b2a9c041a439 Mon Sep 17 00:00:00 2001 From: dogfootman Date: Wed, 30 Oct 2024 15:29:38 +0900 Subject: [PATCH 31/43] =?UTF-8?q?Monitoring=20Config=20Form=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/common/api/services/monitoring_api.js | 66 ++ .../operation/analytics/monitoringconfig.js | 749 ++++++++++++++++++ .../monitorings/monitoringconfig.html | 344 +++++++- .../monitorings/_monitoringconfig_detail.html | 97 +++ .../monitorings/_monitoringconfig_log.html | 1 + .../monitorings/_monitoringconfig_metric.html | 1 + .../_monitoringconfigtabcards.html | 38 + 7 files changed, 1295 insertions(+), 1 deletion(-) create mode 100644 front/assets/js/pages/operation/analytics/monitoringconfig.js create mode 100644 front/templates/partials/operations/analytics/monitorings/_monitoringconfig_detail.html create mode 100644 front/templates/partials/operations/analytics/monitorings/_monitoringconfig_log.html create mode 100644 front/templates/partials/operations/analytics/monitorings/_monitoringconfig_metric.html create mode 100644 front/templates/partials/operations/analytics/monitorings/_monitoringconfigtabcards.html diff --git a/front/assets/js/common/api/services/monitoring_api.js b/front/assets/js/common/api/services/monitoring_api.js index 97d5fe6b..8c7ad88e 100644 --- a/front/assets/js/common/api/services/monitoring_api.js +++ b/front/assets/js/common/api/services/monitoring_api.js @@ -411,4 +411,70 @@ export async function getDetectionHistory() { return respDetectionData +} + +// 모니터링 Agent가 설치된 vm 목록 by ns, mci +export async function getTargetsNsMci(nsId, mciId) { + + var controller = "/api/" + "mc-observability/" + "GetTargetsNSMCI"; + let data = { + pathParams: { + nsId: nsId, + mciId: mciId, + }, + }; + + const response = await webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ) + + // target이 있다는 이야기는 agent가 설치되었다는 뜻으로 보면 되는가? maybe + var respMeasureMent = response.data.responseData; + + return respMeasureMent +} + + +export async function InstallMonitoringAgent(nsId, mciId, vmId){ + var controller = "/api/" + "mc-observability/" + "PostTarget"; + + let data = { + pathParams: { + nsId: nsId, + mciId: mciId, + targetId: vmId, + }, + request: { + name:vmId + } + }; + + const response = await webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ) + + return response.data.responseData + +} + +export async function UninstallMonitoringAgent(nsId, mciId, vmId){ + var controller = "/api/" + "mc-observability/" + "DeleteTarget"; + + let data = { + pathParams: { + nsId: nsId, + mciId: mciId, + targetId: vmId, + }, + }; + + const response = await webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ) + + return response.data.responseData + } \ No newline at end of file diff --git a/front/assets/js/pages/operation/analytics/monitoringconfig.js b/front/assets/js/pages/operation/analytics/monitoringconfig.js new file mode 100644 index 00000000..aa4a1847 --- /dev/null +++ b/front/assets/js/pages/operation/analytics/monitoringconfig.js @@ -0,0 +1,749 @@ +import { TabulatorFull as Tabulator } from "tabulator-tables"; + +// navBar에 있는 object인데 직접 handling( onchange) +$("#select-current-project").on('change', async function () { + console.log("select-current-project changed ") + let project = { "Id": this.value, "Name": this.options[this.selectedIndex].text, "NsId": this.options[this.selectedIndex].text } + if (this.value == "") return; + webconsolejs["common/api/services/workspace_api"].setCurrentProject(project)// 세션에 저장 + console.log("select-current-project on change ", project) + +}) + +//// +// 모달 콜백 예제 +export function commoncallbac(val) { + alert(val); +} +//// +// workspace -> project -> workload -> servernode +// selectXXX => object, currentXXX => id와 같은 string 값 +var selectedWorkspaceProject = new Object(); +export var nsid = ""; +export var selectedWorkloads = new Array();// multi 선택 가능함 +var selectedServerNode = new Object(); +var currentWorkloadId = ""; +var currentServernodeId = "-1";// + +var monitorConfigListTable; +var checked_array = []; + +initMonitorConfigTable(); // init tabulator + +//DOMContentLoaded 는 Page에서 1개만. +// init + 파일명 () : ex) initMci() 를 호출하도록 한다. +document.addEventListener("DOMContentLoaded", initMonitorConfig); + +// 해당 화면에서 최초 설정하는 function +//로드 시 prj 값 받아와 getMciList 호출 +async function initMonitorConfig() { + console.log("initMonitorConfig") + ////////////////////// partials init functions start /////////////////////////////////////// + + ////////////////////// partials init functions end /////////////////////////////////////// + + + ////////////////////// set workspace list, project list at Navbar/////////////////////////////////////// + selectedWorkspaceProject = await webconsolejs["partials/layout/navbar"].workspaceProjectInit(); + + // workspace selection check + webconsolejs["partials/layout/modal"].checkWorkspaceSelection(selectedWorkspaceProject) + ////////////////////// set workspace list, project list at Navbar end ////////////////////////////////// + + + if (selectedWorkspaceProject.projectId != "") { + console.log("workspaceProject ", selectedWorkspaceProject) + //var selectedProjectId = selectedWorkspaceProject.projectId; + var currentNsId = selectedWorkspaceProject.nsId; + console.log('in initMci currentNsId:', currentNsId); + + getWorkloadList(currentNsId) + + } +} + +// workload 목록 조회 ( mci + pmk ) +async function getWorkloadList(nsId){ + var respMciList = await webconsolejs["common/api/services/mci_api"].getMciList(nsId); + //var respPmkList = await webconsolejs["common/api/services/pmk_api"].getPmkList(project.NsId); + + console.log("respMciList" , respMciList) + var res_item = respMciList.mci; + + var html = '';// HTML option 리스트 초기값 + // res_item이 배열인지 확인 + if (Array.isArray(res_item)) { + // res_item 배열을 순회하면서 각 MCI의 name을 option 태그로 변환 + res_item.forEach(item => { + html += ''; + }); + } else { + console.error("res_item is not an array"); + } + + //console.log("selectbox ", html) + // workloadlist 셀렉트 박스에 옵션 추가 // + $("#workloadlist").empty(); + $("#workloadlist").append(html); +} + +// workload(mci,pmk) 선택했을 때 monitoring 정보 조회 +$("#workloadlist").on('change', async function () { + + // 현재 mci만 monitoring 하므로 mci/pmk 구분없이 mci 호출 + var currentNsId = selectedWorkspaceProject.nsId; + currentWorkloadId = $("#workloadlist").val() + var currentWorkloadName = $("#workloadlist option:selected").text(); + + var vmMap = new Map(); + + // 1. mci의 vm 목록 조회(install 여부를 위해 필요.) + try { + var response = await webconsolejs["common/api/services/mci_api"].getMci(currentNsId, currentWorkloadId); + var aMci = response.responseData + console.log("aMci ", aMci) + for (var vmIndex in aMci.vm) { + var aVm = aMci.vm[vmIndex] + aVm.workloadType = "MCI";// [MCI/PMK] + aVm.workloadName = currentWorkloadName; + aVm.monAgentStatus = "Not Installed"; + //console.log("aVm ", aVm) + vmMap.set(aVm.id, aVm); + } + console.log(vmMap) + // 2. mci에 agent 설치된 목록 조회 + var monitorTargetList = await webconsolejs["common/api/services/monitoring_api"].getTargetsNsMci(currentNsId, currentWorkloadId) + console.log("monitorTargetList",monitorTargetList.data ) + for (var i in monitorTargetList.data) { + console.log("monitorTargetList.data[i].id", monitorTargetList.data[i].id) + // [ + // { + // "alias_name": "77+9", + // "description": "77+9bQ==", + // "id": "g1-1-1", + // "mci_id": "mci01", + // "name": "g1-1-1", + // "ns_id": "ns01", + // "state": "ACTIVE" + // } + // ] + //var findVm = vmMap.get(monitorTargetList.data[i].id) + var findVm = vmMap.get("vm01-1") + console.log("findVm", findVm) + if( findVm){ + console.log("findVm2", findVm) + //findVm.workloadType = "MCI"; + + findVm.monAgentStatus = monitorTargetList.data[i].state;// [ACTIVE/INACTIVE] + vmMap.set(findVm.id, findVm); + } + } + }catch(e){ + console.log(e) + } + // 3. mci에 log 설정?? + + console.log("vmMap", Array.from(vmMap.values())) + // 4. table에 필요한 data set + monitorConfigListTable.setData(Array.from(vmMap.values())); + +}) + +// getMciList 호출 성공 시 +function getMonitorConfigListCallbackSuccess(caller, monitorConfigList) { + console.log("getMonitorConfigListCallbackSuccess"); + + monitorlistTable.setData(monitorConfigList); + +} + +// 클릭한 monitor config info 가져오기 +// 표에서 선택된 MonitorConfigId 받아옴 +function getSelectedMonitorConfigData(servernodeId) { + + console.log('selectedMonitorConfigID:', servernodeId); + if (servernodeId == undefined || servernodeId == "") { + console.log("return ", servernodeId) + return; + } + + // + // Toggle Monitoring Config Info + // 기본은 detailTab : monitoringconfig_info + // var div = document.getElementById("monitoringconfig_info");//monitoring_configuration + // console.log("monitoringconfig_info ", div) + // webconsolejs["partials/layout/navigatePages"].toggleElement(div) + + setMonitorConfigInfoData(); + +} + +// 클릭한 mci의 info값 세팅 +function setMonitorConfigInfoData() { + + // var row = monitorConfigListTable.getRow(currentServernodeId); + // console.log(row) + // console.log("setMonitorConfigInfoData", monitorConfigData) + + //selectedServerNode 안에 현재 선택한 rowData가 들어있음 + console.log("setMonitorConfigInfoData ", selectedServerNode) + try { + // var mciID = mciData.id; + // var mciName = mciData.name; + // var mciDescription = mciData.description; + // var mciStatus = mciData.status; + // console.log("setMciInfoData ", mciStatus) + // var mciDispStatus = webconsolejs["common/api/services/mci_api"].getMciStatusFormatter(mciStatus); + // var mciStatusIcon = webconsolejs["common/api/services/mci_api"].getMciStatusIconFormatter(mciDispStatus); + // var mciProviderNames = webconsolejs["common/api/services/mci_api"].getMciInfoProviderNames(mciData); //MCIS에 사용 된 provider + // var totalvmCount = mciData.vm.length; //mci의 vm개수 + + // console.log("totalvmCount", totalvmCount) + + // $("#mci_info_text").text(" [ " + mciName + " ]") + // $("#mci_server_info_status").empty(); + // $("#mci_server_info_status").text(" [ " + mciName + " ]") + // $("#mci_server_info_count").text(" Server(" + totalvmCount + ")") + + + // $("#mci_info_status_img").attr("src", "/assets/images/common/" + mciStatusIcon) + // $("#mci_info_name").text(mciName + " / " + mciID) + // $("#mci_info_description").text(mciDescription) + // $("#mci_info_status").text(mciStatus) + // $("#mci_info_cloud_connection").empty() + // $("#mci_info_cloud_connection").append(mciProviderNames) + + } catch (e) { + console.error(e); + } + +} + + +// Server List / Status VM 리스트에서 +// VM 한 개 클릭시 vm의 세부 정보 +export async function monitorConfigDetailInfo(mciID, mciName, vmID) { + // Toggle MCIS Info + var div = document.getElementById("server_info"); + webconsolejs["partials/layout/navigatePages"].toggleElement(div) + + console.log("vmDetailInfo") + console.log("mciID : ", mciID) + console.log("mciName : ", mciName) + console.log("vmID : ", vmID) + + // get mci + currentNsId = webconsolejs["common/api/services/workspace_api"].getCurrentProject()?.NsId + try { + var response = await webconsolejs["common/api/services/mci_api"].getMci(currentNsId, mciID); + var aMci = response.responseData + clearServerInfo(); + + console.log("aMci", aMci); + + if (!aMci || !aMci.vm) { + console.log("aMci or vmList is not defined"); + return; + } + + var vmList = aMci.vm; + console.log("vmList:", vmList); + + var vmExist = false; + var data = new Object(); + + for (var vmIndex in vmList) { + var aVm = vmList[vmIndex]; + if (vmID == aVm.id) { + data = aVm; + vmExist = true; + console.log("aVm", aVm); + break; + } + } + + if (!vmExist) { + console.log("vm is not exist"); + } + } catch (error) { + console.error("Error occurred: ", error); + } + console.log("selected Vm"); + console.log("selected vm data : ", data); + var vmId = data.id; + selectedVmId = vmId + var vmName = data.name; + var vmStatus = data.status; + var vmDescription = data.description; + var vmPublicIp = data.publicIP == undefined ? "" : data.publicIP; + console.log("vmPublicIp", vmPublicIp) + var vmSshKeyID = data.sshKeyId; + + try { + var imageId = data.imageId + // var operatingSystem = await webconsolejs["common/api/services/vmimage_api"].getCommonVmImageInfo(imageId) + // var operatingSystem = data.imageId + var operatingSystem = "Ubuntu" + $("#server_info_os").text(operatingSystem) + } catch (e) { + console.log("e", e) + } + var startTime = data.createdTime + var privateIp = data.privateIP + var securityGroupID = data.securityGroupIds[0]; + var providerName = data.connectionConfig.providerName + var vmProviderIcon = "" + vmProviderIcon += + '' +
+    providerName +
+    ''; + + var vmDispStatus = webconsolejs["common/api/services/mci_api"].getMciStatusFormatter(vmStatus); + var mciStatusIcon = webconsolejs["common/api/services/mci_api"].getMciStatusIconFormatter(vmDispStatus); + + //vm info + $("#mci_server_info_status_img").attr("src", "/assets/images/common/" + mciStatusIcon) + $("#mci_server_info_connection").empty() + $("#mci_server_info_connection").append(vmProviderIcon) + + + $("#server_info_text").text(' [ ' + vmName + ' / ' + mciName + ' ]') + $("#server_info_name").text(vmName + "/" + vmID) + $("#server_info_desc").text(vmDescription) + + $("#server_info_start_time").text(startTime) + $("#server_info_private_ip").text(privateIp) + $("#server_info_cspVMID").text(data.cspResourceName) + + // ip information + $("#server_info_public_ip").text(vmPublicIp) + $("#server_detail_info_public_ip_text").text("Public IP : " + vmPublicIp) + $("#server_info_public_dns").text(data.publicDNS) + // $("#server_info_private_ip").val(data.privateIP) + $("#server_info_private_dns").text(data.privateDNS) + + $("#server_detail_view_public_ip").text(vmPublicIp) + $("#server_detail_view_public_dns").text(data.publicDNS) + $("#server_detail_view_private_ip").text(data.privateIP) + $("#server_detail_view_private_dns").text(data.privateDNS) + + // detail tab + $("#server_detail_info_text").text(' [' + vmName + '/' + mciName + ']') + $("#server_detail_view_server_id").text(vmId) + $("#server_detail_view_server_status").text(vmStatus); + $("#server_detail_view_public_dns").text(data.publicDNS) + $("#server_detail_view_public_ip").text(vmPublicIp) + $("#server_detail_view_private_ip").text(data.privateIP) + $("#server_detail_view_security_group_text").text(securityGroupID) + $("#server_detail_view_private_dns").text(data.privateDNS) + $("#server_detail_view_private_ip").text(data.privateIP) + $("#server_detail_view_image_id").text(imageId) + $("#server_detail_view_os").text(operatingSystem); + $("#server_detail_view_user_id_pass").text(data.vmUserAccount + "/ *** ") + + var region = data.region.Region + + var zone = data.region.Zone + + // connection tab + var connectionName = data.connectionName + var credentialName = data.connectionConfig.credentialName + var driverName = data.connectionConfig.driverName + var locationInfo = data.location; + var cloudType = locationInfo.cloudType; + + $("#server_connection_view_connection_name").text(connectionName) + $("#server_connection_view_credential_name").text(credentialName) + $("#server_connection_view_csp").text(providerName) + $("#server_connection_view_driver_name").text(driverName) + $("#server_connection_view_region").text(providerName + " : " + region) + $("#server_connection_view_zone").text(zone) + + // region zone locate + $("#server_info_region").text(providerName + ":" + region) + $("#server_info_zone").text(zone) + + + $("#server_detail_view_region").text(providerName + " : " + region) + $("#server_detail_view_zone").text(zone) + + // connection name + var connectionName = data.connectionName; + $("#server_info_connection_name").text(connectionName) + + var vmDetail = data.cspViewVmDetail; + // var vmDetailKeyValueList = vmDetail.KeyValueList + var addtionalDetails = data.addtionalDetails + console.log("addtionalDetails",addtionalDetails) + var architecture = ""; + var vpcId = "" + var subnetId = "" + + if (addtionalDetails) { + for (var i = 0; i < addtionalDetails.length; i++) { + if (addtionalDetails[i].key === "Architecture") { + architecture = addtionalDetails[i].value; + break; + } + } + } + var vpcId = data.cspVNetId + var subnetId = data.cspSubnetId + var vmSpecName = data.cspSpecName + var vpcSystemId = data.vNetId + + var subnetSystemId = data.subnetId + var eth = data.networkInterface + + $("#server_info_archi").text(architecture) + // detail tab + $("#server_detail_view_archi").text(architecture) + $("#server_detail_view_vpc_id").text(vpcId + "(" + vpcSystemId + ")") + $("#server_detail_view_subnet_id").text(subnetId + "(" + subnetSystemId + ")") + $("#server_detail_view_eth").text(eth) + $("#server_detail_view_root_device_type").text(data.rootDiskType); + $("#server_detail_view_root_device").text(data.rootDeviceName); + $("#server_detail_view_keypair_name").text(data.cspSshKeyId) + $("#server_detail_view_access_id_pass").text(data.vmUserName + "/ *** ") + + + // server spec + // var vmSecName = data.VmSpecName + $("#server_info_vmspec_name").text(vmSpecName) + $("#server_detail_view_server_spec").text(vmSpecName) // detail tab + + webconsolejs["partials/operation/manage/server_monitoring"].monitoringDataInit() +} + +// monitor config 세부 정보 초기화 +function clearMonitorConfigInfo() { + console.log("clearServerInfo") + +// $("#server_info_text").text("") +// $("#server_detail_info_text").text("") +// $("#server_detail_view_server_status").val(""); +// $("#server_info_name").val("") +// $("#server_info_desc").val("") + +// // ip information +// $("#server_info_public_ip").val("") +// $("#server_detail_info_public_ip_text").text("") +// $("#server_info_public_dns").val("") +// $("#server_info_private_ip").val("") +// $("#server_info_private_dns").val("") + +// $("#server_detail_view_public_ip").val("") +// $("#server_detail_view_public_dns").val("") +// $("#server_detail_view_private_ip").val("") +// $("#server_detail_view_private_dns").val("") + +} + +// monitor agent 상태값 표시 +function displayMonitorAgentStatusArea() { +// var sumVmCnt = 0; +// var sumVmRunningCnt = 0; +// var sumVmStopCnt = 0; +// var sumVmTerminateCnt = 0; +// totalVmStatusMap.forEach((value, key) => { +// var statusRunning = value.get("running"); +// var statusStop = value.get("stop"); +// var statusTerminate = value.get("terminate"); +// sumVmRunningCnt += statusRunning; +// sumVmStopCnt += statusStop; +// sumVmTerminateCnt += statusTerminate; +// }); +// sumVmCnt = sumVmRunningCnt + sumVmStopCnt + sumVmTerminateCnt; +// $("#total_vm").text(sumVmCnt); +// $("#vm_status_running").text(sumVmRunningCnt); +// $("#vm_status_stopped").text(sumVmStopCnt); +// $("#vm_status_terminated").text(sumVmTerminateCnt); +} + + +////////////////////////////////////////////////////// TABULATOR Start ////////////////////////////////////////////////////// +// tabulator 행, 열, 기본값 설정 +// table이 n개 가능하므로 개별 tabulator 정의 : 원리 util 안에 setTabulator있음. +function setMonitorConfigTabulator( + tableObjId, + tableObjParamMap, + columnsParams, + isMultiSelect +) { + var placeholder = "No Data"; + var pagination = "local"; + var paginationSize = 5; + var paginationSizeSelector = [5, 10, 15, 20]; + var movableColumns = true; + var columnHeaderVertAlign = "middle"; + var paginationCounter = "rows"; + var layout = "fitColumns"; + + if (tableObjParamMap.hasOwnProperty("placeholder")) { + placeholder = tableObjParamMap.placeholder; + } + + if (tableObjParamMap.hasOwnProperty("pagination")) { + pagination = tableObjParamMap.pagination; + } + + if (tableObjParamMap.hasOwnProperty("paginationSize")) { + paginationSize = tableObjParamMap.paginationSize; + } + + if (tableObjParamMap.hasOwnProperty("paginationSizeSelector")) { + paginationSizeSelector = tableObjParamMap.paginationSizeSelector; + } + + if (tableObjParamMap.hasOwnProperty("movableColumns")) { + movableColumns = tableObjParamMap.movableColumns; + } + + if (tableObjParamMap.hasOwnProperty("columnHeaderVertAlign")) { + columnHeaderVertAlign = tableObjParamMap.columnHeaderVertAlign; + } + + if (tableObjParamMap.hasOwnProperty("paginationCounter")) { + paginationCounter = tableObjParamMap.paginationCounter; + } + + if (tableObjParamMap.hasOwnProperty("layout")) { + layout = tableObjParamMap.layout; + } + + var tabulatorTable = new Tabulator("#" + tableObjId, { + placeholder, + pagination, + paginationSize, + paginationSizeSelector, + movableColumns, + columnHeaderVertAlign, + paginationCounter, + layout, + columns: columnsParams, + selectableRows: isMultiSelect == false ? 1 : true, + }); + + return tabulatorTable; +} + +// tabulator Table 초기값 설정 +function initMonitorConfigTable() { + + var tableObjParams = {}; + + var columns = [ + { + formatter: "rowSelection", + titleFormatter: "rowSelection", + vertAlign: "middle", + hozAlign: "center", + headerHozAlign: "center", + headerSort: false, + width: 60, + }, + { + title: "Type", + field: "workloadType", + vertAlign: "middle", + hozAlign: "center", + headerSort: false, + }, + { + title: "Workload", + field: "workloadName", + vertAlign: "middle", + hozAlign: "center", + headerSort: false, + width: 100, + maxWidth: 130, + }, + { + title: "Id", + field: "id", + visible: true + }, + { + title: "Name", + field: "name", + vertAlign: "middle" + }, + + // { + // title: "Monitor", + // field: "monitor", + // visible: true + // }, + { + title: "Agent Statue", + field: "monAgentStatus", + vertAlign: "middle", + hozAlign: "center", + width: 120, + }, + { + title: "Collect Status", + field: "collectStatus", + vertAlign: "middle", + hozAlign: "center", + headerHozAlign: "center", + maxWidth: 150, + }, + { + title: "Collect datetime", + field: "collectDatetime", + vertAlign: "middle", + hozAlign: "center", + headerHozAlign: "center", + maxWidth: 150, + }, + { + title: "Log/Treace", + field: "logTrace", + vertAlign: "middle", + hozAlign: "center", + headerHozAlign: "center", + maxWidth: 135, + }, + ]; + + monitorConfigListTable = setMonitorConfigTabulator("monitorconfiglist-table", tableObjParams, columns, true); + + // 행 클릭 시 + monitorConfigListTable.on("rowClick", function (e, row) { + selectedServerNode = row.getData(); + //var workloadType = row.getCell("workloadType").getValue(); + var tempServernodeId = currentServernodeId; + currentServernodeId = row.getCell("id").getValue(); + console.log("row ", row.getData()) + console.log("currentServernodeId ", currentServernodeId) + + // 상세 정보 표시 여부 + if (tempServernodeId === currentServernodeId) { + webconsolejs["partials/layout/navigatePages"].deactiveElement(document.getElementById("monitoring_configuration")) + + this.deselectRow(); + return + } else { + webconsolejs["partials/layout/navigatePages"].activeElement(document.getElementById("monitoring_configuration")) + this.deselectRow(); + this.selectRow(currentServernodeId); + // 표에서 선택된 Servernode + getSelectedMonitorConfigData(currentServernodeId) + return + } + }); + + monitorConfigListTable.on("cellClick", function(e, cell){ + var field = cell.getField(); + if( field == "monAgentStatus"){ + var agentStatus = cell.getValue(); + console.log("agentStatus", agentStatus) + if( agentStatus != "ACTIVE" && agentStatus != "INACTIVE"){ + console.log("Row data:", cell.getRow().getData()); + console.log("id data:", cell.getRow().getData().id); + var targetVmId = cell.getRow().getData().id; + + var targetModal = "commonDefaultModal"; + var modalTitle = "MonitoringAgentInstall" + var modalContent = "Would you like to install the monitoring agent?"; + var modalFunc = "pages/operation/analytics/monitoringconfig.installMonitoringAgent"; + webconsolejs['partials/layout/modal'].commonConfirmModal(targetModal, modalTitle, modalContent, modalFunc, targetVmId); + + } + } + + // console.log("Clicked cell value:", cell.getValue()); // Get cell value + // console.log("Clicked field:", cell.getField()); // Get field name (e.g., "name" or "age") + // console.log("Row data:", cell.getRow().getData()); + }); + + // TODO : 선택된 여러개 row에 대해 처리 + monitorConfigListTable.on("rowSelectionChanged", function (data, rows) { + // checked_array = data + // console.log("checked_array", checked_array) + // console.log("rowsrows", data) + // selectedServernode = data + }); + // displayColumn(table); +} + +export function installMonitoringAgent(vmId){ + var currentNsId = selectedWorkspaceProject.nsId; + console.log("currentWorkloadId", currentWorkloadId); + console.log("vmId", vmId) + + var response = webconsolejs["common/api/services/monitoring_api"].InstallMonitoringAgent(currentNsId, currentWorkloadId, vmId); + console.log(response); + +} + +/////////////////////////Tabulator Filter start///////////////////////// +//Define variables for input elements +var fieldEl = document.getElementById("filter-field"); +var typeEl = document.getElementById("filter-type"); +var valueEl = document.getElementById("filter-value"); + +// table rovider filtering / equel 고정 +function providerFilter(data) { + + // case type like, equal, not eual + // equal only + if (typeEl.value == "=") { + var vmCloudConnectionMap = webconsolejs["common/api/services/mci_api"].calculateConnectionCount( + data.vm + ); + var valueElValue = valueEl.value; + if (valueElValue != "") { + if (vmCloudConnectionMap.has(valueElValue)) { + return true; + } else { + return false; + } + } + + } else { + return true; + } + + return true +} + +// Trigger setFilter function with correct parameters +function updateFilter() { + var filterVal = fieldEl.options[fieldEl.selectedIndex].value; + var typeVal = typeEl.options[typeEl.selectedIndex].value; + + var filter = filterVal == "provider" ? providerFilter : filterVal; + + if (filterVal == "provider") { + typeEl.value = "="; + typeEl.disabled = true; + } else { + typeEl.disabled = false; + } + + if (filterVal) { + table.setFilter(filter, typeVal, valueEl.value); + } +} + +// Update filters on value change +// document.getElementById("filter-field").addEventListener("change", updateFilter); +// document.getElementById("filter-type").addEventListener("change", updateFilter); +// document.getElementById("filter-value").addEventListener("keyup", updateFilter); + +// Clear filters on "Clear Filters" button click +document.getElementById("filter-clear").addEventListener("click", function () { + fieldEl.value = ""; + typeEl.value = "="; + valueEl.value = ""; + + table.clearFilter(); + +}); +/////////////////////////Tabulator Filter END///////////////////////// + +////////////////////////////////////////////////////// END TABULATOR /////////////////////////////////////////////////// \ No newline at end of file diff --git a/front/templates/pages/operations/analytics/monitorings/monitoringconfig.html b/front/templates/pages/operations/analytics/monitorings/monitoringconfig.html index 4c57a9d7..0d2dc6a7 100644 --- a/front/templates/pages/operations/analytics/monitorings/monitoringconfig.html +++ b/front/templates/pages/operations/analytics/monitorings/monitoringconfig.html @@ -1 +1,343 @@ -<%= partial("underdevelop.html") %> \ No newline at end of file +
    +
    +
    +
    +
    +
    +

    Monitor Setting / Workload

    +
    + +
    +
    +
    + +
    + + +
    + +
    +
    + +
    +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + Filter +
    + + +
    +
    +
    + +
    + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    +

    + Monitoring Config Info +

    +
    +
    +
    +
    + <%= partial("partials/operations/analytics/monitorings/monitoringconfigtabcards.html") %> +
    +
    +
    +
    + +
    + + +
    +
    +
    +
    +
    + +
    +
    Preparing Data
    +
    +
    +
    +
    +
    +
    +
    + +
    + +<%= javascriptTag("pages/operation/analytics/monitoringconfig.js") %> +<%= javascriptTag("common/api/services/monitoring_api.js") %> +<%= javascriptTag("common/api/services/mci_api.js") %> diff --git a/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_detail.html b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_detail.html new file mode 100644 index 00000000..3bbcf29c --- /dev/null +++ b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_detail.html @@ -0,0 +1,97 @@ + +
    +
    +

    + Monitoring Setting +

    + +
    +
    +
    +
    +
    +
    +
    +
    +
    Name / ID
    +
    +
    +
    +
    +
    +
    Description
    +
    +
    +
    + +
    +
    +
    Description
    +
    +
    +
    + +
    +
    +
    Workload
    +
    +
    +
    + +
    +
    +
    Monitor
    +
    +
    +
    + +
    +
    +
    Agent Status
    +
    +
    +
    + +
    +
    +
    Collect Status
    +
    +
    +
    + +
    +
    +
    Collect datetime
    +
    +
    +
    + +
    +
    +
    Monitor Storage
    +
    +
    +
    + +
    +
    +
    Monitor Metrics
    +
    +
    +
    + +
    +
    +
    Log
    +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    \ No newline at end of file diff --git a/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_log.html b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_log.html new file mode 100644 index 00000000..fbf828d6 --- /dev/null +++ b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_log.html @@ -0,0 +1 @@ +log \ No newline at end of file diff --git a/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_metric.html b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_metric.html new file mode 100644 index 00000000..f6ceccef --- /dev/null +++ b/front/templates/partials/operations/analytics/monitorings/_monitoringconfig_metric.html @@ -0,0 +1 @@ +metric \ No newline at end of file diff --git a/front/templates/partials/operations/analytics/monitorings/_monitoringconfigtabcards.html b/front/templates/partials/operations/analytics/monitorings/_monitoringconfigtabcards.html new file mode 100644 index 00000000..f2b33d6d --- /dev/null +++ b/front/templates/partials/operations/analytics/monitorings/_monitoringconfigtabcards.html @@ -0,0 +1,38 @@ + +
    +
    +
    +
    +
    + +
    +
    +
    +
    +
    + <%= partial("partials/operations/analytics/monitorings/monitoringconfig_detail.html") %> +
    +
    + <%= partial("partials/operations/analytics/monitorings/monitoringconfig_metric.html") %> +
    + +
    + <%= partial("partials/operations/analytics/monitorings/monitoringconfig_log.html") %> +
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file From 842d47d7b4fc74ab0576a67085d711b2ae77ac17 Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Wed, 30 Oct 2024 16:44:41 +0900 Subject: [PATCH 32/43] add azure logo img, add func del cluster, nodegroup --- front/assets/images/common/img_logo_azure.png | Bin 0 -> 19334 bytes .../assets/js/common/api/services/pmk_api.js | 41 ++++++++++-- front/assets/js/pages/operation/manage/pmk.js | 30 +++++++-- .../operation/manage/clustercreate.js | 5 ++ .../manage/workloads/pmkworkloads.html | 63 ++++++++++-------- .../manage/_nodegrouplist_status.html | 22 ++++-- 6 files changed, 116 insertions(+), 45 deletions(-) create mode 100644 front/assets/images/common/img_logo_azure.png diff --git a/front/assets/images/common/img_logo_azure.png b/front/assets/images/common/img_logo_azure.png new file mode 100644 index 0000000000000000000000000000000000000000..8e82650c21b8769cd8730e2ec8ebe7bd71c9bc03 GIT binary patch literal 19334 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 N?ipJc)f&1){ST!IDP;fv literal 0 HcmV?d00001 diff --git a/front/assets/js/common/api/services/pmk_api.js b/front/assets/js/common/api/services/pmk_api.js index 8c6d716c..6e73992d 100644 --- a/front/assets/js/common/api/services/pmk_api.js +++ b/front/assets/js/common/api/services/pmk_api.js @@ -58,7 +58,7 @@ export async function CreateCluster(clusterName, selectedConnection, clusterVers obj['subnetIds'] = [selectedSubnet]; // Subnet ID (배열로 전달) obj['securityGroupIds'] = [selectedSecurityGroup]; // Security Group ID (배열로 전달) - console.log("Create_Cluster_Config_Arr",Create_Cluster_Config_Arr) + console.log("Create_Cluster_Config_Arr", Create_Cluster_Config_Arr) // NodeGroupList가 있으면 추가 (조건부로 추가) if (Create_Cluster_Config_Arr[0].k8sNodeGroupList && Create_Cluster_Config_Arr[0].k8sNodeGroupList.length > 0) { obj['k8sNodeGroupList'] = Create_Cluster_Config_Arr[0].k8sNodeGroupList.map(group => ({ @@ -353,10 +353,12 @@ export function calculateConnectionCount(clusterList) { return clusterCloudConnectionCountMap; } -export async function createNode(k8sClusterId, nsId, Create_Cluster_Config_Arr) { +export async function createNode(k8sClusterId, nsId, Create_Node_Config_Arr) { var obj = {} - obj = Create_Cluster_Config_Arr[0] + console.log("Create_Node_Config_ArrCreate_Node_Config_Arr", Create_Node_Config_Arr[0]) + + obj = Create_Node_Config_Arr[0] const data = { pathParams: { nsId: nsId, @@ -386,7 +388,7 @@ export async function createNode(k8sClusterId, nsId, Create_Cluster_Config_Arr) } export async function getSshKey(nsId) { - + if (nsId == "") { console.log("Project has not set") return; @@ -604,3 +606,34 @@ export function calculateVmStatusCount(aPmk) { return vmStatusCountMap; } +export function pmkDelete(nsId, k8sClusterId) { + let data = { + pathParams: { + nsId: nsId, + k8sClusterId: k8sClusterId, + }, + }; + let controller = "/api/" + "mc-infra-manager/" + "Deletek8scluster"; + let response = webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ); + console.log("pmkDelete response : ", response) +} + +export function nodeGroupDelete(nsId, k8sClusterId, k8sNodeGroupName) { + + let data = { + pathParams: { + nsId: nsId, + k8sClusterId: k8sClusterId, + k8sNodeGroupName: k8sNodeGroupName + }, + }; + let controller = "/api/" + "mc-infra-manager/" + "Deletek8snodegroup"; + let response = webconsolejs["common/api/http"].commonAPIPost( + controller, + data + ); + console.log("pmkDelete response : ", response) +} \ No newline at end of file diff --git a/front/assets/js/pages/operation/manage/pmk.js b/front/assets/js/pages/operation/manage/pmk.js index 2257b3d1..1173de00 100644 --- a/front/assets/js/pages/operation/manage/pmk.js +++ b/front/assets/js/pages/operation/manage/pmk.js @@ -130,7 +130,6 @@ function mappingTablePmkData(totalPmkListObj) { }); } - // 클릭한 pmk info 가져오기 // 표에서 선택된 PmkId 받아옴 async function getSelectedPmkData(pmkID) { @@ -140,7 +139,7 @@ async function getSelectedPmkData(pmkID) { var selectedNsId = selectedWorkspaceProject.nsId; currentPmkId = pmkID var pmkResp = await webconsolejs["common/api/services/pmk_api"].getCluster(selectedNsId, pmkID) - + if (pmkResp.status != 200) { console.log("resp status ", pmkResp.status) // failed. // TODO : Error Popup 처리 @@ -155,6 +154,21 @@ async function getSelectedPmkData(pmkID) { } } +// pmk 삭제 +export function deletePmk() { + + var selectedNsId = selectedWorkspaceProject.nsId; + webconsolejs["common/api/services/pmk_api"].pmkDelete(selectedNsId, currentPmkId) +} + +// nodegroup 삭제 +export function deleteNodeGroup() { + + var selectedNsId = selectedWorkspaceProject.nsId; + webconsolejs["common/api/services/pmk_api"].nodeGroupDelete(selectedNsId, currentPmkId, selectedNodeGroupName) + +} + // 클릭한 pmk의 info값 세팅 function setPmkInfoData(pmkData) { console.log("setPmkInfoData", pmkData); @@ -207,7 +221,7 @@ function setPmkInfoData(pmkData) { // TODO: pmk info로 cursor 이동 var nodeGroupList = clusterDetailData.NodeGroupList - + // displayNodeGroupStatusList(pmkID, clusterData) if (Array.isArray(nodeGroupList) && nodeGroupList.length > 0) { displayNodeGroupStatusList(pmkID, clusterData); @@ -256,6 +270,7 @@ function displayNodeGroupStatusList(pmkID, clusterData) { // Server List / Status VM 리스트에서 // VM 한 개 클릭시 vm의 세부 정보 // export async function nodeGroupDetailInfo(pmkID, pmkName, nodeID) { +var selectedNodeGroupName = "" export async function nodeGroupDetailInfo(pmkID, aNodejsonObject, nodeID) { // Toggle PMK Info var div = document.getElementById("nodeGroup_info"); @@ -268,18 +283,19 @@ export async function nodeGroupDetailInfo(pmkID, aNodejsonObject, nodeID) { displayNodeStatusList(aNode) var ngName = aNode.IId.NameId + selectedNodeGroupName = ngName var ngImage = aNode.ImageIID.NameId var ngSpec = aNode.VMSpecName - + var ngKeyPair = aNode.KeyPairIID.NameId var ngDesiredNodeSize = aNode.DesiredNodeSize var ngMinNodeSize = aNode.MinNodeSize var ngMaxNodeSize = aNode.MaxNodeSize - + var ngAutoScaling = aNode.OnAutoScaling var ngRootDiskType = aNode.RootDiskType var ngRootDiskSize = aNode.RootDiskSize - + // Info SET $("#ng_info_name").text(ngName) $("#ng_info_image").text(ngImage) @@ -301,7 +317,7 @@ function displayNodeStatusList(nodeData) { var nodeList = nodeData.Nodes var nodeLi = ""; - for (var nodeIndex in nodeList){ + for (var nodeIndex in nodeList) { var aNode = nodeList[nodeIndex] var nodeId = aNode.SystemId var nodeName = aNode.NameId diff --git a/front/assets/js/partials/operation/manage/clustercreate.js b/front/assets/js/partials/operation/manage/clustercreate.js index 89b3e581..394fc1e3 100644 --- a/front/assets/js/partials/operation/manage/clustercreate.js +++ b/front/assets/js/partials/operation/manage/clustercreate.js @@ -709,6 +709,11 @@ export function clusterFormDone_btn() { var nodeGroup_cnt = 1 var add_nodegroup_html = "" Create_Cluster_Config_Arr.push(cluster_form); + if (isNodeGroup) { + Create_Node_Config_Arr.push(cluster_form["k8sNodeGroupList"][0]); + console.log("Final node Config:", Create_Node_Config_Arr); + + } console.log("Final Cluster Config:", Create_Cluster_Config_Arr); var displayNodegroupCnt = '(' + nodeGroup_cnt + ')' diff --git a/front/templates/pages/operations/manage/workloads/pmkworkloads.html b/front/templates/pages/operations/manage/workloads/pmkworkloads.html index ebd9020a..a73d616b 100644 --- a/front/templates/pages/operations/manage/workloads/pmkworkloads.html +++ b/front/templates/pages/operations/manage/workloads/pmkworkloads.html @@ -1,5 +1,4 @@
    -
    @@ -186,7 +185,12 @@

    List of Cluster

    New - + List of Cluster

    Add node

    - - <%= partial("partials/operation/manage/clustercreate.html") %> - - - <%= partial("partials/operation/manage/clusterrecommendation.html") %> - - <%= partial("partials/operation/manage/cspimagelist.html") %> - - <%= partial("partials/operation/manage/cspspeclist.html") %> <%= - javascriptTag("pages/operation/manage/pmk.js") %> <%= - javascriptTag("common/api/services/pmk_api.js") %> <%= - javascriptTag("common/api/services/vmimage_api.js") %> + +<%= partial("partials/operation/manage/clustercreate.html") %> + +<%= partial("partials/operation/manage/clusterrecommendation.html") %> + +<%= partial("partials/operation/manage/cspimagelist.html") %> + +<%= partial("partials/operation/manage/cspspeclist.html") %> <%= +javascriptTag("pages/operation/manage/pmk.js") %> <%= +javascriptTag("common/api/services/pmk_api.js") %> <%= +javascriptTag("common/api/services/vmimage_api.js") %> diff --git a/front/templates/partials/operation/manage/_nodegrouplist_status.html b/front/templates/partials/operation/manage/_nodegrouplist_status.html index 5e9eb119..ee6fadf6 100644 --- a/front/templates/partials/operation/manage/_nodegrouplist_status.html +++ b/front/templates/partials/operation/manage/_nodegrouplist_status.html @@ -6,7 +6,11 @@

    -->

    - - -
    From ed181286234e07cf6903861fa83719937b849197 Mon Sep 17 00:00:00 2001 From: dogfootman Date: Wed, 30 Oct 2024 16:58:24 +0900 Subject: [PATCH 33/43] =?UTF-8?q?text=EB=B3=80=EA=B2=BD=20MCIS=EB=A5=BC=20?= =?UTF-8?q?MCI=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/_operation/manage/mci.html | 22 +++++++++---------- .../manage/workloads/pmkworkloads.html | 2 +- .../partials/operation/manage/_mciinfo.html | 2 +- .../manage/_nodegrouplist_status.html | 8 +++---- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/front/templates/pages/_operation/manage/mci.html b/front/templates/pages/_operation/manage/mci.html index 95ac21a6..70944f2e 100644 --- a/front/templates/pages/_operation/manage/mci.html +++ b/front/templates/pages/_operation/manage/mci.html @@ -1,6 +1,6 @@
    - +
    @@ -14,7 +14,7 @@
    -

    List of MCIS

    +

    List of MCI

    List of MCIS class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCIS ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'reboot')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'reboot')" > List of MCIS class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCIS ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'suspend')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'suspend')" > List of MCIS class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCIS ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'resume')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'resume')" > List of MCIS class="dropdown-item" data-bs-toggle="modal" data-bs-target="#commonDefaultModal" - onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCIS ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'terminate')" + onclick="webconsolejs['partials/layout/modal'].commonModal(this,'MciSuspend', 'Would you like to suspend MCI ?', 'pages/operation/manage/mci.changeMciLifeCycle', 'terminate')" > List of MCIS
    - +
    @@ -594,8 +594,8 @@

    Create MCI

    Steps

    -
    -
    -
    -
    -
    - -
    -
    Preparing Data
    -
    -
    -
    -
    -
    -
    -
    + + <%= partial("partials/layout/pageloader.html") %>
    diff --git a/front/templates/pages/operations/manage/workloads/mciworkloads.html b/front/templates/pages/operations/manage/workloads/mciworkloads.html index 0ef14875..eb2eeebe 100644 --- a/front/templates/pages/operations/manage/workloads/mciworkloads.html +++ b/front/templates/pages/operations/manage/workloads/mciworkloads.html @@ -622,7 +622,6 @@

    Steps

    -
    @@ -749,8 +748,9 @@

    Steps

    -
    -
    + +
    +
    <%= partial("partials/operation/manage/mcicreate.html") %> @@ -762,6 +762,9 @@

    Steps

    <%= partial("partials/operation/manage/cspspeclist.html") %> + +<%= partial("partials/layout/pageloader.html") %> + <%= javascriptTag("pages/operation/manage/mci.js") %> <%= javascriptTag("common/api/services/mci_api.js") %> <%= javascriptTag("common/api/services/vmimage_api.js") %> diff --git a/front/templates/partials/layout/_pageloader.html b/front/templates/partials/layout/_pageloader.html new file mode 100644 index 00000000..481e5fbe --- /dev/null +++ b/front/templates/partials/layout/_pageloader.html @@ -0,0 +1,15 @@ +
    +
    +
    +
    +
    + +
    +
    Preparing Data
    +
    +
    +
    +
    +
    +
    +
    \ No newline at end of file From 450eb480ba44e20f79629e578c3190d169725dbb Mon Sep 17 00:00:00 2001 From: dogfootman Date: Thu, 31 Oct 2024 10:50:44 +0900 Subject: [PATCH 37/43] =?UTF-8?q?style=20=EB=B3=B4=EC=99=84.=20workspace?= =?UTF-8?q?=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/assets/css/tabler.css | 3 +- front/assets/css/tabler_custom.scss | 2 +- .../pages/operations/manage/workspaces.html | 82 ++++++++++++++++++- 3 files changed, 82 insertions(+), 5 deletions(-) diff --git a/front/assets/css/tabler.css b/front/assets/css/tabler.css index e72651a8..6867991c 100644 --- a/front/assets/css/tabler.css +++ b/front/assets/css/tabler.css @@ -17498,11 +17498,12 @@ Navbar vertical letter-spacing: 0.04em; line-height: 1rem; color: var(--tblr-secondary); + margin-bottom: 0.2rem; } .page-title { margin: 0; - font-size: var(--tblr-font-size-h2); + font-size: 1.5rem; line-height: var(--tblr-line-height-h4); font-weight: var(--tblr-font-weight-headings); color: inherit; diff --git a/front/assets/css/tabler_custom.scss b/front/assets/css/tabler_custom.scss index c80297b3..18d916d4 100644 --- a/front/assets/css/tabler_custom.scss +++ b/front/assets/css/tabler_custom.scss @@ -11,7 +11,7 @@ //summary font size .card-title.summary { - font-size: 200%; + font-size: 1.1rem; } // sidebar non-clickable text set diff --git a/front/templates/pages/operations/manage/workspaces.html b/front/templates/pages/operations/manage/workspaces.html index a42f0bef..6dffb71b 100644 --- a/front/templates/pages/operations/manage/workspaces.html +++ b/front/templates/pages/operations/manage/workspaces.html @@ -12,10 +12,11 @@
    -

    Workspaces Summary

    +

    Workspaces Summary

    + +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    +
    Workspaces
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + +
    +
    +
    +
    Projects
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + +
    +
    +
    +
    Groups / Members
    +
    +
    +
    +
    -
    -
    +
    From 52bdc05ca65842eaa5681ef5c091664d45056068 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Thu, 31 Oct 2024 04:20:49 +0000 Subject: [PATCH 38/43] clean git flow --- .github/workflows/continuous-integration.yaml | 140 ------------------ 1 file changed, 140 deletions(-) delete mode 100644 .github/workflows/continuous-integration.yaml diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml deleted file mode 100644 index a327c811..00000000 --- a/.github/workflows/continuous-integration.yaml +++ /dev/null @@ -1,140 +0,0 @@ -# This workflow performs continuous integration (CI). -# This workflow will build the container image for amd64 arch. (as a basic build test) -name: Continuous Integration (CI) - -on: - # On pull-request event with detailed condition below. - pull_request: - branches: - - main - paths-ignore: - - "**.md" - - ".gitignore" - - "LICENSE" - - "docs/**" - - "api/scripts/**" - - "front/scripts/**" - - "*/scripts/**" -jobs: - # The job key (i.e., ID) is "build-source-code" - build-source-code-api-server: - # Job name is "Building source code" - # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) - # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners - name: Build source code for mc-web-console api - strategy: - matrix: - go-version: ["1.23"] - os: [ubuntu-22.04] - #os: [ubuntu-22.04, ubuntu-20.04, windows-2022, windows-2019] - runs-on: ${{matrix.os}} - steps: - - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{matrix.go-version}} - - - name: Install Buffalo CLI - run: go install github.com/gobuffalo/cli/cmd/buffalo@v0.18.14 - - - name: Install Go dependencies - run: go mod download - working-directory: ./api - - - name: Build Buffalo application - run: buffalo build --static - working-directory: ./api - - # The job key is "build-container-image" - build-container-image-api-server: - # Job name is "Build a container image" - name: Build a container image for mc-web-console api - - # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) - # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners - runs-on: ubuntu-22.04 - if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} - - steps: - - name: Checkout source code - uses: actions/checkout@v4 - - - name: Build image - env: - IMAGE_NAME: ${{ github.event.repository.name }}-api - run: docker image build --file ./api/Dockerfile.mcwebconsoleapi --tag $IMAGE_NAME . - - # The job key (i.e., ID) is "build-source-code" - build-source-code-front-server: - # Job name is "Building source code" - # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) - # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners - name: Build source code for mc-web-console front - strategy: - matrix: - go-version: ["1.23"] - os: [ubuntu-22.04] - #os: [ubuntu-22.04, ubuntu-20.04, windows-2022, windows-2019] - runs-on: ${{matrix.os}} - steps: - - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: ${{matrix.go-version}} - - - name: Install Buffalo CLI - run: go install github.com/gobuffalo/cli/cmd/buffalo@v0.18.14 - - - name: Install Go dependencies - run: go mod download - working-directory: ./front - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: '20.17.0' - - - name: Enable Corepack - run: corepack enable - - - name: Install Yarn 4.1.0 - run: corepack prepare yarn@4.1.0 --activate - - - name: Install npm dependencies - run: npm install - working-directory: ./front - - - name: Clean Yarn cache - run: yarn cache clean - working-directory: ./front - - - name: Install Yarn dependencies with cache check - run: yarn install --immutable - working-directory: ./front - - - name: Build Buffalo application - run: buffalo build --static - working-directory: ./front - - # The job key is "build-container-image" - build-container-image-front-server: - # Job name is "Build a container image" - name: Build a container image for mc-web-console front - - # This job runs on Ubuntu-latest (Ubuntu 22.04 LTS checked on 2023-12-13) - # See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners - runs-on: ubuntu-22.04 - if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} - - steps: - - name: Checkout source code - uses: actions/checkout@v4 - - - name: Build image - env: - IMAGE_NAME: ${{ github.event.repository.name }}-front - run: docker image build --file ./front/Dockerfile.mcwebconsolefront --tag $IMAGE_NAME . \ No newline at end of file From 7c001064f6f0cdaa5386c354ac79670430e0f502 Mon Sep 17 00:00:00 2001 From: SungWoongz Date: Thu, 31 Oct 2024 13:24:45 +0900 Subject: [PATCH 39/43] design changed --- front/assets/css/tabler.css | 20 +++- front/assets/css/tabulator_for_tabler.scss | 1 + .../assets/js/common/api/services/mci_api.js | 4 +- front/assets/js/pages/operation/manage/mci.js | 68 ++++++++++--- .../operation/manage/_mci_status_summary.html | 98 ++++++++++--------- .../partials/operation/manage/_mciinfo.html | 48 ++++----- .../manage/_server_status_summary.html | 93 ++++++++++-------- .../operation/manage/_serverinfo.html | 2 +- .../operation/manage/_serverlist_status.html | 2 +- 9 files changed, 199 insertions(+), 137 deletions(-) diff --git a/front/assets/css/tabler.css b/front/assets/css/tabler.css index 6867991c..7a274408 100644 --- a/front/assets/css/tabler.css +++ b/front/assets/css/tabler.css @@ -4807,6 +4807,7 @@ body[data-bs-theme=dark] .navbar[data-bs-theme=light] { margin-left: var(--tblr-card-spacer-x); } + .card-header { padding: var(--tblr-card-cap-padding-y) var(--tblr-card-cap-padding-x); margin-bottom: 0; @@ -4814,6 +4815,14 @@ body[data-bs-theme=dark] .navbar[data-bs-theme=light] { background-color: var(--tblr-card-cap-bg); border-bottom: var(--tblr-card-border-width) solid var(--tblr-card-border-color); } +.card-header.summary { + display: flex; + flex-direction: column; + padding: 0; + justify-content: center; + flex-wrap: nowrap; + align-items: flex-start; +} .card-header:first-child { border-radius: var(--tblr-card-inner-border-radius) var(--tblr-card-inner-border-radius) 0 0; } @@ -20599,10 +20608,17 @@ Card table padding-right: 1.25rem; border-right: 0; } -.card-table thead tr:first-child, -.card-table tbody tr:first-child, +.card-table thead tr:first-child{ + font-weight: var(--tblr-font-weight-bold) +} +.card-table tbody tr:first-child{ + font-size: 0.875rem +} .card-table tfoot tr:first-child { border-top: 0; + font-size: 0.75rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; } .card-table thead tr:first-child td, .card-table thead tr:first-child th, diff --git a/front/assets/css/tabulator_for_tabler.scss b/front/assets/css/tabulator_for_tabler.scss index cf07f245..16a83fe9 100644 --- a/front/assets/css/tabulator_for_tabler.scss +++ b/front/assets/css/tabulator_for_tabler.scss @@ -92,5 +92,6 @@ $rangeHeaderTextHighlightBackground: #000000; //header text color when highlight .tabulator-page{ &.active{ font-weight: bold; + background-color: var(--tblr-primary-lt); } } \ No newline at end of file diff --git a/front/assets/js/common/api/services/mci_api.js b/front/assets/js/common/api/services/mci_api.js index ec12a2d6..19ae125d 100644 --- a/front/assets/js/common/api/services/mci_api.js +++ b/front/assets/js/common/api/services/mci_api.js @@ -339,11 +339,11 @@ export function getMciInfoProviderNames(mciData) { if (vmCloudConnectionMap) { vmCloudConnectionMap.forEach((value, key) => { mciProviderNames += - '' +
         key +
-        ''; + '" style="margin-right: 5px;"/>'; }); } return mciProviderNames diff --git a/front/assets/js/pages/operation/manage/mci.js b/front/assets/js/pages/operation/manage/mci.js index 05b77fb3..777c100e 100644 --- a/front/assets/js/pages/operation/manage/mci.js +++ b/front/assets/js/pages/operation/manage/mci.js @@ -139,12 +139,34 @@ function setMciInfoData(mciData) { var mciName = mciData.name; var mciDescription = mciData.description; var mciStatus = mciData.status; - console.log("setMciInfoData ", mciStatus) - var mciDispStatus = webconsolejs["common/api/services/mci_api"].getMciStatusFormatter(mciStatus); - var mciStatusIcon = webconsolejs["common/api/services/mci_api"].getMciStatusIconFormatter(mciDispStatus); - var mciProviderNames = webconsolejs["common/api/services/mci_api"].getMciInfoProviderNames(mciData); //MCIS에 사용 된 provider + // var mciDispStatus = webconsolejs["common/api/services/mci_api"].getMciStatusFormatter(mciStatus); + // var mciStatusIcon = webconsolejs["common/api/services/mci_api"].getMciStatusIconFormatter(mciDispStatus); + var mciProviderNames = webconsolejs["common/api/services/mci_api"].getMciInfoProviderNames(mciData); //MCI에 사용 된 provider var totalvmCount = mciData.vm.length; //mci의 vm개수 + var mciStatusCell = ""; + + if (mciStatus.includes("Running")) { + mciStatusCell = + '
    ' + + ' Running' + + '
    '; + } else if (mciStatus.includes("Suspended")) { + mciStatusCell = + '
    ' + + ' Stopped' + + '
    '; + } else if (mciStatus.includes("Terminated")) { + mciStatusCell = + '
    ' + + ' Terminated' + + '
    '; + } else if (mciStatus.includes("Failed")) { + mciStatusCell = + '
    ' + + ' ' + mciStatus + '' + + '
    '; + } console.log("totalvmCount", totalvmCount) $("#mci_info_text").text(" [ " + mciName + " ]") @@ -156,7 +178,9 @@ function setMciInfoData(mciData) { $("#mci_info_status_img").attr("src", "/assets/images/common/" + mciStatusIcon) $("#mci_info_name").text(mciName + " / " + mciID) $("#mci_info_description").text(mciDescription) - $("#mci_info_status").text(mciStatus) + // $("#mci_info_status").text(mciStatus) + $("#mci_info_status").empty() + $("#mci_info_status").append(mciStatusCell) $("#mci_info_cloud_connection").empty() $("#mci_info_cloud_connection").append(mciProviderNames) @@ -194,8 +218,8 @@ export function changeMciLifeCycle(type) { // vm life cycle 변경 export function changeVmLifeCycle(type) { var selectedNsId = selectedWorkspaceProject.nsId; - - if( selectedVmId == undefined || selectedVmId == ""){ + + if (selectedVmId == undefined || selectedVmId == "") { webconsolejs['partials/layout/modal'].commonShowDefaultModal('Validation', 'Please select a VM') return; } @@ -808,12 +832,30 @@ function statusFormatter(cell) { var mciDispStatus = webconsolejs["common/api/services/mci_api"].getMciStatusFormatter( cell.getData().status ); // 화면 표시용 status - var mciStatusCell = - ''; + + var mciStatusCell = ""; + + if (mciDispStatus === "running") { + mciStatusCell = + '
    ' + + ' Running' + + '
    '; + } else if (mciDispStatus === "suspend") { + mciStatusCell = + '
    ' + + ' Stopped' + + '
    '; + } else if (mciDispStatus === "terminate") { + mciStatusCell = + '
    ' + + ' Terminated' + + '
    '; + } else { + mciStatusCell = + '
    ' + + ' Terminated' + + '
    '; + } return mciStatusCell; } diff --git a/front/templates/partials/operation/manage/_mci_status_summary.html b/front/templates/partials/operation/manage/_mci_status_summary.html index 63f60907..6fca7e63 100644 --- a/front/templates/partials/operation/manage/_mci_status_summary.html +++ b/front/templates/partials/operation/manage/_mci_status_summary.html @@ -1,50 +1,58 @@ -
    -
    -

    MCI Status

    -
    - -
    -
    -
    -
    -
    -

    0

    -
    -
    -
    +
    +
    +

    MCI Status

    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +
    +
    +

    0

    + Total +
    +
    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +

    + 0 +

    + Running +
    +
    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +

    0

    + Stopped +
    +
    + +
    +
    +
    +

    + 0 +

    + Terminated +
    -
    \ No newline at end of file +
    +
    +
    +
    diff --git a/front/templates/partials/operation/manage/_mciinfo.html b/front/templates/partials/operation/manage/_mciinfo.html index d398caac..3c352132 100644 --- a/front/templates/partials/operation/manage/_mciinfo.html +++ b/front/templates/partials/operation/manage/_mciinfo.html @@ -1,7 +1,7 @@
    - +

    MCI Info @@ -9,39 +9,25 @@

    -
    -
    - +
    +
    +
    Name
    +
    -
    -
    -
    -
    -
    -
    Name
    -
    -
    -
    -
    Status
    -
    -
    -
    -
    Provider
    -
    - -
    -
    -
    -
    Description
    -
    -
    +
    +
    Status
    +
    +
    +
    +
    Provider
    +
    +
    +
    +
    Description
    +
    +
    diff --git a/front/templates/partials/operation/manage/_server_status_summary.html b/front/templates/partials/operation/manage/_server_status_summary.html index 898792a7..882aea81 100644 --- a/front/templates/partials/operation/manage/_server_status_summary.html +++ b/front/templates/partials/operation/manage/_server_status_summary.html @@ -1,47 +1,56 @@ -
    -
    -

    Server Status

    -
    - -
    -
    -
    -
    -
    -

    0

    -
    -
    -
    +
    +
    +

    Server Status

    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +
    +
    +

    0

    + Total +
    +
    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +

    0

    + Running +
    +
    +
    -
    -
    -
    -

    - 0 -

    -
    -
    -
    +
    +
    +
    +

    0

    + Stopped +
    +
    + +
    +
    +
    +

    + 0 +

    + Terminated +
    -
    \ No newline at end of file +
    +
    +
    +
    diff --git a/front/templates/partials/operation/manage/_serverinfo.html b/front/templates/partials/operation/manage/_serverinfo.html index d747bf8a..515ff516 100644 --- a/front/templates/partials/operation/manage/_serverinfo.html +++ b/front/templates/partials/operation/manage/_serverinfo.html @@ -7,7 +7,7 @@

    - + Date: Thu, 31 Oct 2024 14:13:44 +0900 Subject: [PATCH 40/43] fix mci status --- front/assets/js/pages/operation/manage/mci.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/front/assets/js/pages/operation/manage/mci.js b/front/assets/js/pages/operation/manage/mci.js index 777c100e..dfc0ecef 100644 --- a/front/assets/js/pages/operation/manage/mci.js +++ b/front/assets/js/pages/operation/manage/mci.js @@ -146,22 +146,26 @@ function setMciInfoData(mciData) { var mciStatusCell = ""; - if (mciStatus.includes("Running")) { + // if (mciStatus.includes("Running")) { + if (mciStatus==="Running") { mciStatusCell = '
    ' + ' Running' + '
    '; - } else if (mciStatus.includes("Suspended")) { + // } else if (mciStatus.includes("Suspended")) { + } else if (mciStatus === "Suspended") { mciStatusCell = '
    ' + ' Stopped' + '
    '; - } else if (mciStatus.includes("Terminated")) { + // } else if (mciStatus.includes("Terminated")) { + } else if (mciStatus === "Terminated") { mciStatusCell = '
    ' + ' Terminated' + '
    '; - } else if (mciStatus.includes("Failed")) { + // } else if (mciStatus.includes("Failed")) { + } else { mciStatusCell = '
    ' + ' ' + mciStatus + '' + @@ -175,7 +179,7 @@ function setMciInfoData(mciData) { $("#mci_server_info_count").text(" Server(" + totalvmCount + ")") - $("#mci_info_status_img").attr("src", "/assets/images/common/" + mciStatusIcon) + // $("#mci_info_status_img").attr("src", "/assets/images/common/" + mciStatusIcon) $("#mci_info_name").text(mciName + " / " + mciID) $("#mci_info_description").text(mciDescription) // $("#mci_info_status").text(mciStatus) @@ -853,7 +857,7 @@ function statusFormatter(cell) { } else { mciStatusCell = '
    ' + - ' Terminated' + + ' Partial' + '
    '; } From 5ba7721a2a603dd985beb0bac1440ae662888f60 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Thu, 31 Oct 2024 05:31:27 +0000 Subject: [PATCH 41/43] iframe env update --- api/actions/env.go | 10 +++- api/actions/routes.go | 16 +++++ conf/.env.sample | 5 ++ front/assets/js/common/iframe/iframe.js | 25 ++++++++ .../analytics/costanalysis.iframe.js | 58 ------------------- .../operation/plugins/costoptimizer.iframe.js | 35 ++--------- .../operation/plugins/datamanager.iframe.js | 35 ++--------- .../plugins/softwaremanager.iframe.js | 36 +++--------- .../plugins/workflowmanager.iframe.js | 35 ++--------- front/templates/application.iframe.plush.html | 5 +- .../analytics/costanalysis.iframe.html | 2 +- .../operations/manage/workflows.iframe.html | 2 +- 12 files changed, 84 insertions(+), 180 deletions(-) create mode 100644 front/assets/js/common/iframe/iframe.js delete mode 100644 front/assets/js/pages/operation/analytics/costanalysis.iframe.js diff --git a/api/actions/env.go b/api/actions/env.go index 07d020de..d0ac0b55 100644 --- a/api/actions/env.go +++ b/api/actions/env.go @@ -5,10 +5,14 @@ import ( "strconv" ) +var MCIAM_USE = false // MC-IAM-MANAGER 사용여부, init 에서 재정의 +var MCIAM_TICKET_USE = false // MC-IAM-MANAGER 티켓 사용여부, init 에서 재정의 + +var IFRAME_TARGET_IS_HOST = false // init 에서 재정의 + func init() { MCIAM_USE, _ = strconv.ParseBool(os.Getenv("MCIAM_USE")) MCIAM_TICKET_USE, _ = strconv.ParseBool(os.Getenv("MCIAM_TICKET_USE")) -} -var MCIAM_USE = false // MC-IAM-MANAGER 사용여부, init 에서 재정의 -var MCIAM_TICKET_USE = false // MC-IAM-MANAGER 티켓 사용여부, init 에서 재정의 + IFRAME_TARGET_IS_HOST, _ = strconv.ParseBool(os.Getenv("IFRAME_TARGET_IS_HOST")) +} diff --git a/api/actions/routes.go b/api/actions/routes.go index 8f298ec2..ebc27367 100644 --- a/api/actions/routes.go +++ b/api/actions/routes.go @@ -1,8 +1,10 @@ package actions import ( + "fmt" "log" "mc_web_console_api/handler" + "regexp" "strings" "github.com/gobuffalo/buffalo" @@ -59,5 +61,19 @@ func GetApiHosts(c buffalo.Context) error { return c.Render(200, r.JSON(map[string]interface{}{"error": err.Error()})) } commonResponse := handler.CommonResponseStatusOK(apiHosts) + + re := regexp.MustCompile(`:(\d+.*)`) + if IFRAME_TARGET_IS_HOST { + for fw, host := range apiHosts { + portUrlStr := re.FindString(host.BaseURL) + if portUrlStr != "" { + host.BaseURL = portUrlStr + apiHosts[fw] = host + } + } + fmt.Println(apiHosts) + commonResponse = handler.CommonResponseStatusOK(apiHosts) + } + return c.Render(commonResponse.Status.StatusCode, r.JSON(commonResponse)) } diff --git a/conf/.env.sample b/conf/.env.sample index 713fe54a..5607ea93 100644 --- a/conf/.env.sample +++ b/conf/.env.sample @@ -10,5 +10,10 @@ export DATABASE_HOST=DATABASE_HOST # Please CHANGE ME (REQUIRE) export DATABASE=DATABASE # Please CHANGE ME (REQUIRE) export DATABASE_URL=postgres://${DATABASE_USER}:${DATABASE_PASS}@${DATABASE_HOST}:5432/${DATABASE} +# IFRAME_TARGET_IS_HOST [ true || false ] +export IFRAME_TARGET_IS_HOST=false +# if IFRAME_TARGET_IS_HOST is false, iframe will see the other server +# if true, iframe will see the host + export MCIAM_USE=true export MCIAM_TICKET_USE=false \ No newline at end of file diff --git a/front/assets/js/common/iframe/iframe.js b/front/assets/js/common/iframe/iframe.js new file mode 100644 index 00000000..5dff4fd7 --- /dev/null +++ b/front/assets/js/common/iframe/iframe.js @@ -0,0 +1,25 @@ +export function addIframe(targetDiv, srchost, data){ + var iframe = document.createElement("iframe"); + iframe.src = srchost; + iframe.onload = function() { + console.log("iFrame loaded.."); + console.log("postMessage : ", data); + iframe.contentWindow.postMessage(data, host); + }; + var div = document.getElementById(targetDiv); + div.appendChild(iframe); +} + +export async function GetApiHosts(frameworkName){ + var controller = "/api/" + "getapihosts"; + const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( + controller, + null, + ); + const framework = getapihostsresponse.data.responseData[frameworkName]; + if (framework && framework.BaseURL) { + return framework.BaseURL; + } else { + return 'Framework not found'; + } +} diff --git a/front/assets/js/pages/operation/analytics/costanalysis.iframe.js b/front/assets/js/pages/operation/analytics/costanalysis.iframe.js deleted file mode 100644 index 61afb0df..00000000 --- a/front/assets/js/pages/operation/analytics/costanalysis.iframe.js +++ /dev/null @@ -1,58 +0,0 @@ -// const data = { -// projectid: 'mzctestPrj', -// workspaceid: 'mzctestWs', -// usertoken: 'mzctoken' -// }; -var host = "" - -// 데모환경에서 사용할 예제 데이터 입니다. -const data = { - accessToken: "accesstokenExample", - workspaceInfo: { - "id": "UUID", // 이부분은 UUID로 별도 정보가 필요할시 해당 ID 를 활용해 IAM 과 연동하시면됩니다. - "name": "ws01", // Display 용 이름입니다. - "description": "ws01 desc", // 설명입니다. - "created_at": "UTC", - "updated_at": "UTC" - }, - projectInfo: { - "id": "UUID", // 이부분은 UUID로 별도 정보가 필요할시 해당 ID 를 활용해 IAM 과 연동하시면됩니다. - "ns_id": "ns01", // 텀블벅 연동 ID 입니다. - "name": "ns01", // Display 용 이름입니다. - "description": "ns01 desc", // 설명입니다. - "created_at": "UTC", - "updated_at": "UTC" - }, - requestOperationId: "" -}; - -document.addEventListener("DOMContentLoaded", async function(){ - host = await GetApiHosts("mc-cost-optimizer") - addIframe("costIframe", host) -}); - -function addIframe(targetDiv, srchost){ - var iframe = document.createElement("iframe"); - iframe.src = srchost; - iframe.onload = function() { - console.log("iFrame loaded.."); - console.log("postMessage : ", data); - iframe.contentWindow.postMessage(data, host); - }; - var div = document.getElementById(targetDiv); - div.appendChild(iframe); -} - -async function GetApiHosts(frameworkName){ - var controller = "/api/" + "getapihosts"; - const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( - controller, - null, - ); - const framework = getapihostsresponse.data.responseData[frameworkName]; - if (framework && framework.BaseURL) { - return framework.BaseURL; - } else { - return 'Framework not found'; - } -} diff --git a/front/assets/js/pages/operation/plugins/costoptimizer.iframe.js b/front/assets/js/pages/operation/plugins/costoptimizer.iframe.js index dc857293..4b29bf58 100644 --- a/front/assets/js/pages/operation/plugins/costoptimizer.iframe.js +++ b/front/assets/js/pages/operation/plugins/costoptimizer.iframe.js @@ -3,7 +3,6 @@ // workspaceid: 'mzctestWs', // usertoken: 'mzctoken' // }; -var host = "" // 데모환경에서 사용할 예제 데이터 입니다. const data = { @@ -27,32 +26,10 @@ const data = { }; document.addEventListener("DOMContentLoaded", async function(){ - host = await GetApiHosts("mc-cost-optimizer") - addIframe("targetIframe", host) -}); - -function addIframe(targetDiv, srchost){ - var iframe = document.createElement("iframe"); - iframe.src = srchost; - iframe.onload = function() { - console.log("iFrame loaded.."); - console.log("postMessage : ", data); - iframe.contentWindow.postMessage(data, host); - }; - var div = document.getElementById(targetDiv); - div.appendChild(iframe); -} - -async function GetApiHosts(frameworkName){ - var controller = "/api/" + "getapihosts"; - const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( - controller, - null, - ); - const framework = getapihostsresponse.data.responseData[frameworkName]; - if (framework && framework.BaseURL) { - return framework.BaseURL; - } else { - return 'Framework not found'; + var host = await webconsolejs["common/iframe/iframe"].GetApiHosts("mc-cost-optimizer") + const domain = window.location.protocol + '//' + window.location.hostname; + if (host.startsWith(":")) { + host = `${domain}${host}`; } -} + webconsolejs["common/iframe/iframe"].addIframe("costIframe", host, data) +}); \ No newline at end of file diff --git a/front/assets/js/pages/operation/plugins/datamanager.iframe.js b/front/assets/js/pages/operation/plugins/datamanager.iframe.js index b7b46a7e..f5059db8 100644 --- a/front/assets/js/pages/operation/plugins/datamanager.iframe.js +++ b/front/assets/js/pages/operation/plugins/datamanager.iframe.js @@ -3,7 +3,6 @@ // workspaceid: 'mzctestWs', // usertoken: 'mzctoken' // }; -var host = "" // 데모환경에서 사용할 예제 데이터 입니다. const data = { @@ -27,32 +26,10 @@ const data = { }; document.addEventListener("DOMContentLoaded", async function(){ - host = await GetApiHosts("mc-data-manager") - addIframe("targetIframe", host) -}); - -function addIframe(targetDiv, srchost){ - var iframe = document.createElement("iframe"); - iframe.src = srchost; - iframe.onload = function() { - console.log("iFrame loaded.."); - console.log("postMessage : ", data); - iframe.contentWindow.postMessage(data, host); - }; - var div = document.getElementById(targetDiv); - div.appendChild(iframe); -} - -async function GetApiHosts(frameworkName){ - var controller = "/api/" + "getapihosts"; - const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( - controller, - null, - ); - const framework = getapihostsresponse.data.responseData[frameworkName]; - if (framework && framework.BaseURL) { - return framework.BaseURL; - } else { - return 'Framework not found'; + var host = await webconsolejs["common/iframe/iframe"].GetApiHosts("mc-data-manager") + const domain = window.location.protocol + '//' + window.location.hostname; + if (host.startsWith(":")) { + host = `${domain}${host}`; } -} + webconsolejs["common/iframe/iframe"].addIframe("targetIframe", host, data) +}); \ No newline at end of file diff --git a/front/assets/js/pages/operation/plugins/softwaremanager.iframe.js b/front/assets/js/pages/operation/plugins/softwaremanager.iframe.js index a131ca58..64f94358 100644 --- a/front/assets/js/pages/operation/plugins/softwaremanager.iframe.js +++ b/front/assets/js/pages/operation/plugins/softwaremanager.iframe.js @@ -3,7 +3,6 @@ // workspaceid: 'mzctestWs', // usertoken: 'mzctoken' // }; -var host = "" // 데모환경에서 사용할 예제 데이터 입니다. const data = { @@ -27,33 +26,12 @@ const data = { }; document.addEventListener("DOMContentLoaded", async function(){ - host = await GetApiHosts("mc-software-manager") - addIframe("targetIframe-repository", host+"/web/repository/list") - addIframe("targetIframe-sofrwareCatalog", host+"/web/softwareCatalog/list") -}); + var host = await webconsolejs["common/iframe/iframe"].GetApiHosts("mc-application-manager") + const domain = window.location.protocol + '//' + window.location.hostname; -function addIframe(targetDiv, srchost){ - var iframe = document.createElement("iframe"); - iframe.src = srchost; - iframe.onload = function() { - console.log("iFrame loaded.."); - console.log("postMessage : ", data); - iframe.contentWindow.postMessage(data, host); - }; - var div = document.getElementById(targetDiv); - div.appendChild(iframe); -} - -async function GetApiHosts(frameworkName){ - var controller = "/api/" + "getapihosts"; - const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( - controller, - null, - ); - const framework = getapihostsresponse.data.responseData[frameworkName]; - if (framework && framework.BaseURL) { - return framework.BaseURL; - } else { - return 'Framework not found'; + if (host.startsWith(":")) { + host = `${domain}${host}`; } -} + webconsolejs["common/iframe/iframe"].addIframe("targetIframe-repository", host+"/web/repository/list", data) + webconsolejs["common/iframe/iframe"].addIframe("targetIframe-sofrwareCatalog", host+"/web/softwareCatalog/list", data) +}); \ No newline at end of file diff --git a/front/assets/js/pages/operation/plugins/workflowmanager.iframe.js b/front/assets/js/pages/operation/plugins/workflowmanager.iframe.js index 01a2a8b7..4e7f70eb 100644 --- a/front/assets/js/pages/operation/plugins/workflowmanager.iframe.js +++ b/front/assets/js/pages/operation/plugins/workflowmanager.iframe.js @@ -3,8 +3,6 @@ // workspaceid: 'mzctestWs', // usertoken: 'mzctoken' // }; -var host = "" - // 데모환경에서 사용할 예제 데이터 입니다. const data = { accessToken: "accesstokenExample", @@ -27,32 +25,11 @@ const data = { }; document.addEventListener("DOMContentLoaded", async function(){ - host = await GetApiHosts("mc-workflow-manager") - addIframe("targetIframe", host+"/web/workflow/list") -}); + var host = await webconsolejs["common/iframe/iframe"].GetApiHosts("mc-workflow-manager") + const domain = window.location.protocol + '//' + window.location.hostname; -function addIframe(targetDiv, srchost){ - var iframe = document.createElement("iframe"); - iframe.src = srchost; - iframe.onload = function() { - console.log("iFrame loaded.."); - console.log("postMessage : ", data); - iframe.contentWindow.postMessage(data, host); - }; - var div = document.getElementById(targetDiv); - div.appendChild(iframe); -} - -async function GetApiHosts(frameworkName){ - var controller = "/api/" + "getapihosts"; - const getapihostsresponse = await webconsolejs["common/api/http"].commonAPIPost( - controller, - null, - ); - const framework = getapihostsresponse.data.responseData[frameworkName]; - if (framework && framework.BaseURL) { - return framework.BaseURL; - } else { - return 'Framework not found'; + if (host.startsWith(":")) { + host = `${domain}${host}`; } -} + webconsolejs["common/iframe/iframe"].addIframe("targetIframe", host+"/web/workflow/list", data) +}); diff --git a/front/templates/application.iframe.plush.html b/front/templates/application.iframe.plush.html index 90fb5fd7..45a0b2df 100644 --- a/front/templates/application.iframe.plush.html +++ b/front/templates/application.iframe.plush.html @@ -60,7 +60,10 @@ <%= javascriptTag("common/storage/localstorage.js") %> <%= javascriptTag("common/storage/sessionstorage.js") %> <%= javascriptTag("partials/layout/modal.js") %> - + + + <%= javascriptTag("common/iframe/iframe.js") %> + \ No newline at end of file diff --git a/front/templates/pages/operations/analytics/costanalysis.iframe.html b/front/templates/pages/operations/analytics/costanalysis.iframe.html index 7b1f6d3c..94856c22 100644 --- a/front/templates/pages/operations/analytics/costanalysis.iframe.html +++ b/front/templates/pages/operations/analytics/costanalysis.iframe.html @@ -1,4 +1,4 @@
    -<%= javascriptTag("pages/operation/analytics/costanalysis.iframe.js") %> +<%= javascriptTag("pages/operation/plugins/costoptimizer.iframe.js") %> \ No newline at end of file diff --git a/front/templates/pages/operations/manage/workflows.iframe.html b/front/templates/pages/operations/manage/workflows.iframe.html index 5a265286..cfbcb360 100644 --- a/front/templates/pages/operations/manage/workflows.iframe.html +++ b/front/templates/pages/operations/manage/workflows.iframe.html @@ -1,4 +1,4 @@
    -<%= javascriptTag("pages/operation/plugins/workflowmanager.iframe.js") %> +<%= javascriptTag("pages/operation/plugins/workflowmanager.iframe.js") %> \ No newline at end of file From 804efb08af7f3c657b0e9728f76f1bafc34ed536 Mon Sep 17 00:00:00 2001 From: raccoon-mh Date: Thu, 31 Oct 2024 05:32:27 +0000 Subject: [PATCH 42/43] msg update --- front/assets/js/common/api/http.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front/assets/js/common/api/http.js b/front/assets/js/common/api/http.js index a4537fd0..ec08c6ac 100644 --- a/front/assets/js/common/api/http.js +++ b/front/assets/js/common/api/http.js @@ -36,7 +36,7 @@ export async function commonAPIPost(url, data, attempt) { console.log("refreshCookieAccessToken success. Retrying request with refreshed token..."); return commonAPIPost(url, data, true); } else { - alert("you logged in other device."); + alert("session is expired"); window.location = "/auth/login" return } From 764009574123cff35e5139d702573b15c93df911 Mon Sep 17 00:00:00 2001 From: dogfootman Date: Thu, 31 Oct 2024 15:46:51 +0900 Subject: [PATCH 43/43] added workload refresh function --- front/assets/images/common/img_logo_mcmp.png | Bin 0 -> 13445 bytes .../assets/js/common/api/services/mci_api.js | 3 +- .../assets/js/common/api/services/pmk_api.js | 10 +- .../operation/analytics/monitoringconfig.js | 2 +- front/assets/js/pages/operation/manage/mci.js | 62 +++++++---- front/assets/js/pages/operation/manage/pmk.js | 103 +++++++++--------- .../operation/manage/clustercreate.js | 4 +- .../pages/_operation/manage/mci.html | 4 +- .../manage/workloads/mciworkloads.html | 4 +- .../manage/workloads/pmkworkloads.html | 4 +- .../manage/_nodegrouplist_status.html | 4 +- .../operation/manage/_serverlist_status.html | 4 +- 12 files changed, 118 insertions(+), 86 deletions(-) create mode 100644 front/assets/images/common/img_logo_mcmp.png diff --git a/front/assets/images/common/img_logo_mcmp.png b/front/assets/images/common/img_logo_mcmp.png new file mode 100644 index 0000000000000000000000000000000000000000..8e29c719333fe995faa784ce077c976e1cc2b812 GIT binary patch literal 13445 zcma)D^Lysb+by5kdTQIYx$V~4+O}=G-EzC-*0yciPpwaF`|bBXcz;N8T}kdqX6`d{ zX3j~XloX_q;PK$Wz`&4x$VjMsA4mVU!2-VbRlllpz`!_u{*Vw=^UONWhV#W#Z~h8s z@xF3xp6*T#<+QDbMN9Nk&z&gUX}y}^ewCU#ign2Oa&pbN;@yYc=b3&UR-T(v#(siE z6;%=y5ov~kB@MMTJ#nQzQK(UO`^qgx9aTuvZcqO77a~2mEca2saXZcNxoSJIWQEOB z3|b=!`I%#wrC-sZRIHD^AM7f&+wyTAXuh`)B)%X*cM#g=_zen|rqr z^a{g!19llzXNWdJPTxy5bS5pK4be%y(6`9b8!HpBd;%a)sBJ>7b*JVaB6g*Mv_%8> zTG;dhz=$Co%RbCr;gxlQKI;!D2mdq`V+knMSU`5S#Y*kR#73JiD8m5?#vnpiA*2eR zy+h#i9oT*KaUj5nA%vJ$195~5TwFrBGEx8Wj=pZ#@J3f55J?7sw&^1?fJXiBNPUnC zx2UXU6!$;sMC!3n{n>xcP^-dcRe~XBK_O#;hZR|}9M?`?4n}}AgJ07>NCL!0aYy6R zllpqE5%I4#t>P3>2C0!2hNzK3whS*_bZmPQ+A|j{OKT+j^xATjI8=kDta6`orq*H$ z>V1QD%*)pT|8n4M45Cs@15v#1AdVL>09%e`gx4?jhAYZE^meoL1pX+7oPkobnCUTj z+==|@hCFkY*qbgz{yChiCe3reKd2`1Qm(da1C|`W$8Wv9hunayr_b%|8!rM( z*t_$g__sh%5rzH1F#i?|gE--Zby%P^6J`KYvf*5m3PM2-aU!B+s~wIV2(?=$!#eiF z&5+ll)J*|UO+mh&o$hXpl3xv3XsQpixCL10S5F#JZxgT#-0uR$vj?wgF z7;|Wzq5C(Jg}W@(y2yIAg|~dGe*=5`0JfVbX@}Pgf!j1Sl21@YLFd21FymPF%;Zcb z-7re@%9{BcJMfgeopXDd+wVWT60W%`suG|WVp(<-%bZ3#pJXL|;ukdYiHvFOym;)E zH=8JiAP9rc7B(xuNCw>%ahPbR?65ocgXS23a~<>WA73v_OJfTM$a`Oj?AI{f&OSlFzN zmySx=&W*3{P9Qq|@_J<{1w@0>YBN3XtYVk_8a)(h*V6@a$AnwmOtpEp_SB1Db3+?g zv9v4+QoaOx{=}NVR+U&(WcuTuO52bA{q}ldu%f;y&BKPVk(E`nT@R0xrQSB|$fZ@9 z4p9kxZ!0r>dqe4aWXX-EY;2I%&xtxKp`GR^TbimkOGpRJlrjMiQ5kN$1tp9?p;xvp zu1MYT%UX#cQc6F}IZMuoG=nXkvtGEz2y6b+rR55I^d>w34pN+}je4+!Pcy1UiqiM+ z>OTVLKYcNW7gwDU)+6}R2GBU~l^#^=zR2whNv`B`oER~%82d~+;FZQrW*(oqyU)Q_ ze4E@(f+Jxu;2rb>L;vFR7dEqf93BNg*f{hH)7iD^Sgn;mkmzU{36VbAzNZvXa51Sf zaspy^++QHKCeLmwDz-K-buTqyp>wA*18-1tkqSWVh@n;meZF-t7@Sb{24Ed2DOJ(T zuZPyLbJmT-2{|k{PEmiXOG#+Ua7{S!JRi<*YSrxYv{~`%c-EqMds^YVo7`||oaTDJ zItXJYBDTSSMTNFQNTw5Cq@cVd|BO_hC@x;R!udV3KFfN;$-x&x#P)=i>i%C%4`{Pi zj$Z+r*dRe^ong}^U{rYDOlnF+YY-4Jyd`$HbXSX<3MKPPAgFM0ca%s-%V8Fu>(U=h znXZEUbbhW?DjHaBXgn=p_zK+kSNKyB$@C$lm7CY(V9%<-LCNp&Co)?-wedaW9a|)? z_ZOjDQcXBAA5t2!;!v7T^w=fJLN>nU- zOylKZ-?GznnXN{Swc3dq)&-NPUMOsM-1X1qHnjtPXzVOY26Dm&B=}4JqSpF2C{mtl>p!Hgo5$Iwd{*2v0FiH;7!GZh)!v@QsFCmablo+tg8O0Tp zzxYEq6czmgug(t3oQ{NU^K!6@n;H1tB~1??bX;LOmiHE*Eg@J#G98fvajP^81A|%l zH0@R9rCGJRKCAfCNVKF_B`W&f6gLpvYmp~AOx9dU=pgRESUL2uO*s<@nT_idY+C)F zGjK`qVK`7@sStjvxVT*QOy45l4k0Sa^&V3$0FD~%6*CZfA6$A(srP4`#}b!BfKnc2 z#5oYZukP6;;qR zruxN|*!+7zn$n39*c-y`w{(3!53N18> z?ZfmcA+U2Hm=E^y$U~nbK#3ELxN&Y|{2K(6FRn1zSMh2Cp-}FjLvzPeCl*|!@EnZJ z+0&4=Y6+ldkr^D~ucEygT1)9)JD{iqh8`Hv(1Oz63=*^rw$urSB=8|{SpiH-z1K;I zkX>m?1!?)-va~$o&$PYu0`CH5zSDuj%jXu>`0wrG=r-bA<}h}7y}0qxv__UMP;&bW zO+C3FL`6tXcrENTQ`SWOG&1NE(-CT<Cl;dd3UvQB!dtbad^)mOv6vutW!9RIn*4s#p@9ojh`frX35AarX57`t3EB zaWro?3F`zaz`UeiR~hDsFhPaSh?9zujBggl3ZWG{|4~?2hs%O| z^5Y)i*e#KgxsU3;Fod{{ z-Cb;v?r`n<=3AR>v^YgV^1Tnk5S9pCBTCl`SW**puqYI#%^Mjw>?1mCtOgLkFnPA|-?O0mFDvCB6 zx2Tg)DZe_`ThZR|Xpwp~kPdWXh}cq0LpYAlb=xX>$&N-egV>!piB&j2GyRtF;bUZe z0-K{*621l`-*<-?k`N3@J2x@^4eGq{+Ig~=i0Smt)nP&-6<1$#Dm)l%xN-RJUU~IB z1TanN`Del=s0O9i$RULpy37_(Z;m008}6&G?yvhDAWE_$IklE7GnQHsYNT5U-C&_G zm@Ygz@2hn8=FwMAkOOekX2PvUF7(^_kJD|5Qi#_Kir=inU&6NE(URlVZlm?Ac%p6> zU$B+5G4FE|EpHwmEzYi=q8eWbV7o%|{m+S0sii|%fmJkaVlA-n9JhY_mjE@&i>mX@ zG`7|d6xNj;G``(1g7ZXD09{&Q!gLyvJom(rQ`8yp*ucSz!N=nM%Kil-)I&X#E)>o- z5q1MDNX};PUrs$)N03s^o7>BY_;qVU@0Tu2mONMCf72Qg8nI&`Rwf*tZ*r1@W#hsv zz0zZeB=y2_-+RX66YEMV%l--3QB~6>pXHgCgsz<7lGBLU_Q*{QWbp$Q%f?%(n$_k* zjPtD~ECzg38}p5N)aQ}(@A;tCQ2B8C#p)%(4tUW4EjBXSndn!;Faw&~4<1jbMM4P9*S$YGScL-Wd=lymDU)Nh-*UH)Ox{ZEt zRdxHiNv!uymmQ;e2JFex3LN|+AxzF2^|Lw3e_*95D$V}{VJGIB)GgxGHPVo$egCA~ z^7tRqyb|r9iMx8bs3O1*w zLS@ADHbe_K6qS?`Jm-3#MmFtOfFaW`8q5(LIKn{)9Bxm=mdUtrbH~R-|De#m*pWf9 ztY93-_gi;7_9QR2)h(HkQ^d({EQGy*8;gv#U*n-ftVBp4>V-Mm5^+)nXZj-m$y(>M z+T}uj{>XQ}ei!E%>lm+5GLTQ~5i_jpUhLr$B2@_KhSWR4AM|WlrzSQ!y91&BiTbMn z4PVb*;QZFO3eUTA`NjVU=VL!s>T8{ry_)m*!MtfPF;q&L^U<#dwm_-iMpg$<>#Ex8RJ*CwGxb<%{-{m`3P+|HfApFbTvx=($3t@@fgtMjPQo-DFsI)IY zcgWCl>2kaiSg>(K%qf8E`m`j+;9~nBsijObZIbc#!ny0t$R=??eK8zAN}C9!g1i~W zkH2MwOFU9XdcpULzX(=uby(6^Tkkx)Z-&*9Z?$(mg#+J?G-<4ChnEz%(<&;IeK50! zPUAzUt>8ugT-3)2$>t@D$tvaCe+oEaLwO4ed(YhWOm`JH+I?B5e-2zi7U?l9KBSi| zn3J>70i;o`Lb|%`doQe-_zvQ-V{zCV$Y=P!-*}UMk4FxYdMV)OJ63qKgK1ibLu=MT%;QJ+YKRrVZz+6}qj$U| za`&gER-H%C{WbmcUVM{z=|Hwo%JS*2Aa)*iOa2Xe?%{*&n8?ya_gn)uF90&pv;OZK ziDOZQq&XTPEzh~I-WXQj!CwsBd*S-T4smh4g!JYn8yQBWjreuD6;hq|-6)U6X`Glg z!s83i5WV@Ty>I-1=|X`G?L=4V>o+oiL*fh(GtdrAS5i&=@c5IQM6rLoT<2 z#5?9{S#CS2oI2MBnb~;+G0IwqWcU6OnL4pj&uE|6{-=KfwP75~(RsAMtILV97LfeZ zpy$8e8pc8Wt_++pG;aww(}&-gY|Bl|?w2kF%FrA1L>6gh-{3%*nyZ{Tc5wxkJEKm-hxmfAn_~!8EcrCn(Seu%v z#jm0B%bG;uSu9%hT5|lGV~K4(Y>^_b)^W52BOnH&f$V3=lR%M;oy9FMivJt>d~U`f zU3^dfzGTUzN}2ZW(g$g+@D`|MMJ;7EZg7SS zi3A(xE5Rc&$gfyEBglaW`N84UIII$Z*CK^W@k*aBaDfcUqQ=2qx-?lhKy+ocb#8DiOh1`c{?T4cv$Fe{`VEM@zy z0&E_&U?>v66CzvcRqMjAJ4uU+B@aBnV^C7E7ytNG#Rdp3IPg~T;cEKdmPgDu1x_`~ zcU12{@4e%f3yEQ5r+D=;(csxlWI#uj{GL4BJ$98~)V0p@&*#mZ+H7Hc$B_S+TFZyb z)|(#Q>ns=68!z%hT^y%jwM{+wPRLd=VMzsNLeDq_@UI&_U=`qm0C7P|;htWgkAS~g z1AQl{Tn#103z*70 zbqspS!Y$SA5>aFrdS=HR`Vg5)90y9Z+@C@8ujW_96jBBEF?HQaX#tL^7Wp?>?pbz8 zTiX|F@G${wzlKRzOW^VE3lLM*RuEgeP%&EIdOjEoS;3R20{QT+cZ>Zpgv}VpCIN*d zgZ=2N*9Y@b$+#$0zS;!*w%f0Ncq}jJnT~p65aFa)Z64U2v zWK3pcVuA~GQ>K=0Uy1f!g{|xdZy#ZQ>GQV54#lbW)_(DazRmq^DS_8-gE^A_& zc5n;8+Zw3*Gjd^c=j%7yb&m8VX;!V?N_93yuKoIcoPYjD@%f$!Zk~+BtuF|PvdM{4 zHs-fJ)OvFF012X^KP36s`P2iZ3I0<=>)QIyTMauP?6sWS@MEfW*n*VYhT*Kxqx{{>LNp^%+OFL*`ns0kbEn@Z%kQnN;aH46gm`9yd5L_hE6L z&l#D-WDZSNqWDlRcSKPC_v)kVmT%)W`J{`lrnOYW*BK>+I`^gFm`d*y&(!IOan`Ov?uWEY|{0OX-f|w|Fl8L$7Pp&GtIhR{cL?sTnDOlhm zq(_{5x=bt9o@#t=GkyuVa<{#F`c=$`6z|Py<*uVC2UJTZ`T&FO(3f;=#4@2~l+e~7 z;$WNhhC>Y(Rr`tlEgK%knagFZEOhQPQ=a$SGPK;x(#qh#GqUzAhX5b=HVBAADyU6O zcClVq;%1Zs=-M0ccy#-F|HBW0x$Fk8GfiPxWOMm7Bab8y{ys3r_PkG@iTbn6PgO%i zgDr=N&8SbMpx;VJjfRgO0kmOr^|r!Te8AFF6)Yc5SSz2#wExwB>(Jc>*P*UniV!>| zLM4%TGZZ`)8So4k)mg2{UE~Iz=`<5jab_zaE;DZ`|wxL65g4b=%UQKt#uRFoZRBbiPKN0*tu~AJo}d0_>G^1t0!4bMK)peFr{ zem#yd*E+7WNv+fpSoIHhPK9! zRER;+8f$%;E`klpl+OOc0pWRKw6inToy~1Ct>X0B)G?(&2#KAp??s-b-}G-q$AXc{ z@Vyl3XGZ(8FI~P887MQja^uHcbIowgw~>%)r5}Raz)02UHIr4F?9{5>V0ME5$dsrr+nU3 zVpWT}P%*(iGY>(o`8revI;*H9GGXLipeNh!FH15?EuifVci(kOcf>XEwFaaE?`eQj zJ`P{%SyQK01FD*9IMm21WZe9a7{!mBwYaj2YFGuw$1VQC#2Jm(MwoPr1}8)mDm6pg zirb9U4v2J8=3rC$h7`SACo4txHPx7Lpw=|R3DXVOM_T_0BScQfO>T|-JH zQVgWWhOzG+up2UT%;(aKNV67Fs4qmMNl&B5slf!}P6S>rt$?;k&&zryC?h{3X8j+@ zMcO)xcfal?q1Jf(EO_&wB)#}|Cc(#SZ|gvJe|R6;gwN0y;T z2{)PFYU|%i-RL>lF||Pvve;iP6JoIw3d#XSDzwFM;K=XSRh4W6O(RB&x3j0gTzt~b zzZayWHa+AAxxNJxr-AsVh76ZGF&fNDA^}rMj{T~KTj){^Ouw)UR9Mm^bU8JGpZ|@9 zI((IXp->)-*^@{K6197W^Mr67WF(5;{5?7>TixFH6&9X}5g7{~Z%ZfpThO^Yt^U4D zkJ+_nN}KM03so*~Xj5|raSK+DckCy`d?nHQl^i~$!<+3Ga-n%V8aEjdr*UOjq}=GN z58P+&M*Tr|dy70#)PIwrs*L}xbW>+`yHE-VW3F|<)JwX>WnXE2tRqp*H;kM$@ofrz z%UVk!WK*qXeWo8GC1I9q~!p&&7Yqv$%NLXwx)K*P^1sCV>#3>O(ZGlc- zqMzZ3h^FajSa(4)E!ca5WkH%!&6+rYs0zATM5nMOEa67xeqHdYhrdbx23fjgaLR5; z9wZw7$3uiKw8p#Ro_VTBPRFN=o(+J!`7r?On%nr|_>CjV1j)+blgP{Wp2$B_dD9zV zKmc^)SMY%&E2#Q?%mIv4Bme~V=vO};vL!AyLUAAtH6>hT@DlN;s3mwy-vxr4KyqkU z7?+~jQE`fpBQDG9IAiR%6zM^OaWV*Pojvu*cr`;OY&tzNPi=(8d)&!hGKz@q{if0L z=nz`P_uqOwQb-CKE|8-ru!xMBGVmip_SLVuq7L0$Znf()l9EoLV9wgi>DY|*o2hPD zUYbQh8OY~p9*KCCukJSE)W4ICFC)#Md}GLwIm?P_lxUCZoF9cl&5O+ASDe5b4BC0( z&0jznE6pZi&6Ko|Orwrq0EmIbA#%Qn=a|wfxi2qW-O5ubavSyO?IaM;0otU+O zFiA4=rtxc#X`Mu@iZFWo@5p`Y-&h`V1wzVSw^H@#E1LFy+9AoTitrh6NChA9YPD;4 znP<{uIHJt|IfiAOqPu_0UVWc(;_>BM-4JO=mu}R8X;6-U?Lr205ecP*E$oXotR$E_ zfF(%*gbB4`lFC8?Z0ro?PVZY?;9?!d6X!*-A&r1Mw2oS`7#x#f zgANReJ4diQvb`!0Ip~(KVQKlZ&7bBpu%y>MFwOC7H2IjJ!RZB7-`e$&va&85Lk5HN zS-zaj;dOkMO$E3v0lbCD*NQTLUSMXo5v4vQJI#VnB4+qBuL`%2hzW%ykxonOYX8AC z+u4-{!|-GE1__Q3^5#`ZN58@r(5aMHjV1%!@vfPn_Crci8aZ+bLX}EGAYV~x&j$&) zvSr+-wTB1c!;0)6B#47{AKH7rFUOGm4dU?0w|N|2^o~?H149P@rHYI=uD!EV$~b6H zy;0%y)B65=>*57O+x{;hx>XTWJ_(S2aQQf3UIW%XY{8KK4mNFz5$MR5MVPgHj$Gdd z+M>1S3xB>9TwR~IrIWkHsL4dmpqvW=GDb>lnFaE2XOtyIj(H6_#}q52mMcwY5b=nl zkWhB7z!Z1(fu6ilEHnWjiWBM`aTF>zv%>#)ClT?{a>y_ZA^kb{%H@e_1YW!k5r2Hm zFM~a*QQo&@PsE_`#-~T6=E}Cz&||398hD#%)DM(Qlsz50(1<7FDm6$>l(^(6Ym1R- z$!2Q@Q(+fQ6B=5Jj%npw!?bj%D&G??AQrjnc%^X)b(%GlMO)Qnr${1 zvF^rXOFN0LiUbOdfOTOTGz}FaZkD9|s;>HP62k}*{M1^`kKj-!wZc!! zBGVfG8nhzZ&s-9#WHch`d7;orE~%3xT)V8{r=3P^UTVbelerHOkeK*oUpYnGea>P+Psz4L7<5VAbIs1Qpo00{8Ryr-^`rz5Vd&_NL7ysnpA zFKkJuAgbtpATrFz>C|!dLgz3r3ZeF*cGae+Wbt*6D0+ShAEuCZ1UVAq2f@@(D`D;@L&mNl}u$_cAKV?0X38VAz*ZC1IbtIKNL}w3*RjGcWD*?{^@u7MklLW0LMX z?xj1Ae}59QzG_*MrYbS3ta2X`@$d#C4W7-l8lNJ=9)m$gzz|N@``3Bg(}(`0zR@$6 zA%Ck+rl0^Xbe{OAYEb&yEa2E{t^_a(J}E+FiIW(=RebC`5)H&SPk4Q}T&@Frrv8p3 z*gm<~ir71qt7*&UA42Id+&G3{agrFftloqk-*bw6!rG%sDrv}@m`B%1BxO~*6Q%N9aj^Df<>sx*=xxT~Qv`GX^3674cR_LBdN8imkjO@7jA+EhmzuU<4 z&WLb8X}IglHFTh`A6Sci1P&CloYf2a=Tg(GQ3Va3pR?ly`}NBP4R6~_3Hx!t%YRff zc$*L=XVFnk{586X?`V%t?4kSCy`!VJyrh1zfa6Q{ydFAgJ6KlUp(%^rqUhk*t zr#*bQE%&?x)HK?1N`pU2;iPqTqjmS8Ry_1;KPzMp^??8zrNu;dL{iXa4@^wVf^0O# zO7TRidrutvEz|xiwJJz2)@HNlxq`aN+3Tn_}3>{Y52~GAqR4hSHccER4Xo} zqz}CUHgc!XKlH3Bp7;S_-=Gy?3u0v*94KWJXQBe4fF&!ZqkZl^&ljksrjyKv^&wRE z9!_+RMV{*%(5r5&9&@j3Tyaa2_rL~Ry1o%xW^hCE+)47AlGkgg96nmzUVR6lL1`6A z@SMoBQw^kj#Of@ZqjHE*ZRzSNc7HFK04 z6`kDA`hCSrgJY!sN*bi~t$)fARyXsN^0=h%>ov~Iuy|T8&%Do6R4GaauZckYd(hsn zWHa1dRLFmaLE!CVe?tQ*aQ$1LG zwUezP6_O(uGkB6Q;oUhHAWAv*L=J9?9MdlQAzc<+_anaicxDYnx#SeOC zpv7Kk6UZ>->gC}>K&wjBlMb{6V+P@anM%0c}?Zhqec~n!*Qm9`M9+og@u7%NT17wh71_ z(7H-No&y-IUHP(>td#W423qWi;~{{?e}jBx^yHFU&r}#lM1n;fh^iNGrBtq+YVFea{ZvBdN@OweCb1c1CR73mK>391bWgC%@1;a~H+MbxEQZ!H&rgYv0GT|4^9 z+FM(UdCcefI%GaCJMUP$0T?;{dj2%6sG*&m78hkb&E1@ClJ)@cQP=RJ0D#zkdX*o| zOd8UmC0&lp!F-Vjg%7;lb)+rAS>of&3RnUHa+mare+g1!06e+ zONxU1*Kd0WR7o%`-RfmlX%NrZ6RsEQc1U9B9Wgq(BrH^c%H$?I6OJ6qZ!TA-fhWWw zUb|0h`%!&l{UXu(CAbsQ#D4i9bhZX=|NG0QXibC>ct~qnS7X}ESjdJ3ZZ52Bn%i=HWNfZ5|s!lNS(KZQ%)Bo`7?IT2b-(Q!)1qTpN%J!bPbfZ*^ zxzxqaNHYzJMpFaSTYQv#92N8HkeFt9?mq>)H0U20!FlNcusYIFULC1hBImW!5=Y+F z%_pY5St`^b!@UdE=(y+c)f6;5MfrCV%|jEm=cDma z;o(qm-o;OZp)VOeL2tBw=<+9do~8S5@=ZB7Fy#@m$x1s{kXGWZ7uv(fj7kiO#5P@} z6{$S}Pglr6 z%%tZ$?bkIMgIfQO`bk~xWb?>C3AAWcTZ4&t;rxgZtW7xtQxp`b>SqUIAy^4^R0H%^ zTrU$DPxio4sv|7huZ+^`By{DJBQz+5 znns4tLZ{qv>puU*Mo^RuyXQv%pKtek%b54pMRc0oHur_exw_44W>{|0Yb=7qgM7eo zk}td9lbH}ZqNQ|$)rLIbK#+WqBuqfl4Q)0e2u&0VTkN2bt?9eRBTMt)dE&-hKYWf) zJUsd;Zq$ei?7Oe4b7|LBE$6e=Y_vemNxesg)${(m&2kVOJ>0_&t;}d9dx~=j@kC=R zVs5JH)A%0S>i9r_E4OnQlenk5V~Pc@0+LW6lpSB+G~ktllaCE5I&|}Rp{&&F>Z*H# z@pm6~p&^xm$V84F)62U1VNzw0{PWfIhtk)G1}2Zt|Hh5Z2Tt)51TYCm-XnnS!lS2b zoidW3&c8cx$daiJR=%bgEb9S1#!(0>?lnZN=mV)}MM`65Kz^O| zMt7-og6j2C-CbuW%w(KdWq=3uToAS>TaGFB?`>Dl{yE^JR(k{IwV|!V4vHR{jz6ry zJtK#J=4Ha=vlpFhCv2n~LR$5|)nEA~cI=!A8inz3UAd^<>K)SDMTbYm|5En*!^7K|2OKSV$hF>kMOV%IZwHKLc47s3Wb!PYXS4r>#Ta{s7sI@%J;(t}SBoW@`S%v+t&6dhV0%AUgAlx-|& ztRb)~#Vu$aeAZX3Q@#sc6z_5$FypWX2rRRTpd8gFjn3(~pECmLb2xy?92bfPZ1nD_ zAgM{R44ejpP>H(~{RR)cG3sogE4MUJFLwIkgeC>qiI^8cBbgGC3H=2&_U3~3Qa?S_ zDvOYY>9aFW8G~*Y4;z&4Cw9vQ`poV1yM1<|Ae4PfRj&SB6tzZW6NJ@f*F$~JR?*&= z;|Y$7hImW(1}g(LV%Mfr(bnwmiPO2wGg)Kz8bLRCv!MO#>R53)o}CRYi}Lq05DB$J zu@|$5*DaF~iDcJZJHRR$pr4jhxKiOqvCm*J5{vyJ e1_S&0`oUtNGo*Zm|NVOr*bhksiE1&!;Qs^hHL)!K literal 0 HcmV?d00001 diff --git a/front/assets/js/common/api/services/mci_api.js b/front/assets/js/common/api/services/mci_api.js index 19ae125d..855c8e5b 100644 --- a/front/assets/js/common/api/services/mci_api.js +++ b/front/assets/js/common/api/services/mci_api.js @@ -338,9 +338,10 @@ export function getMciInfoProviderNames(mciData) { console.log("vmCloudConnectionMap", vmCloudConnectionMap) if (vmCloudConnectionMap) { vmCloudConnectionMap.forEach((value, key) => { + console.log("provider ", key) mciProviderNames += '' +
         key +
         ''; diff --git a/front/assets/js/common/api/services/pmk_api.js b/front/assets/js/common/api/services/pmk_api.js index 6e73992d..a0376239 100644 --- a/front/assets/js/common/api/services/pmk_api.js +++ b/front/assets/js/common/api/services/pmk_api.js @@ -431,10 +431,10 @@ export async function getAvailablek8sClusterNodeImage(providerName, regionName) } // // MCIS 상태를 UI에서 표현하는 방식으로 변경 -// export function getPmkStatusFormatter(pmkFullStatus) { +export function getPmkStatusFormatter(pmkFullStatus) { // console.log("getPmkStatusFormatter " + pmkFullStatus); // var statusArr = pmkFullStatus.split("-"); -// var returnStatus = statusArr[0].toLowerCase(); + var returnStatus = pmkFullStatus // // if (pmkFullStatus.toLowerCase().indexOf("running") > -1) { // if (pmkFullStatus.toLowerCase().indexOf("Active") > -1) { @@ -448,8 +448,8 @@ export async function getAvailablek8sClusterNodeImage(providerName, regionName) // returnStatus = "terminate"; // } // console.log("after status " + returnStatus); -// return returnStatus; -// } + return returnStatus; +} // Pmk 상태를 icon으로 export function getPmkStatusIconFormatter(pmkDispStatus) { @@ -480,7 +480,7 @@ export function getPmkInfoProviderNames(pmkData) { vmCloudConnectionMap.forEach((value, key) => { pmkProviderNames += '' +
         key +
         ''; diff --git a/front/assets/js/pages/operation/analytics/monitoringconfig.js b/front/assets/js/pages/operation/analytics/monitoringconfig.js index aa4a1847..af69bf9e 100644 --- a/front/assets/js/pages/operation/analytics/monitoringconfig.js +++ b/front/assets/js/pages/operation/analytics/monitoringconfig.js @@ -295,7 +295,7 @@ export async function monitorConfigDetailInfo(mciID, mciName, vmID) { var vmProviderIcon = "" vmProviderIcon += '' +
     providerName +
     ''; diff --git a/front/assets/js/pages/operation/manage/mci.js b/front/assets/js/pages/operation/manage/mci.js index dfc0ecef..0c5aa712 100644 --- a/front/assets/js/pages/operation/manage/mci.js +++ b/front/assets/js/pages/operation/manage/mci.js @@ -31,7 +31,7 @@ var currentMciId = ""; var mciListTable; var checked_array = []; var selectedMciID = "" -var currentClickedmciID + initMciTable(); // init tabulator //DOMContentLoaded 는 Page에서 1개만. @@ -59,7 +59,11 @@ async function initMci() { ////////////////////// set workspace list, project list at Navbar end ////////////////////////////////// + refreshMciList(); +} +// Mci 전체 목록 조회 +export async function refreshMciList(){ if (selectedWorkspaceProject.projectId != "") { console.log("workspaceProject ", selectedWorkspaceProject) var selectedProjectId = selectedWorkspaceProject.projectId; @@ -83,14 +87,17 @@ async function initMci() { selectedMciID = params.get('mciID'); console.log('selectedMciID:', selectedMciID); // 출력: mciID의 값 (예: com) - if (selectedMciID != undefined) { + //if (selectedMciID != undefined) { + if (selectedMciID) { + currentMciId = selectedMciID toggleRowSelection(selectedMciID) - getSelectedMciData(selectedMciID) + getSelectedMciData() } //////////////////// mciId를 set하고 조회 완료. //////////////// } } + // getMciList 호출 성공 시 function getMciListCallbackSuccess(caller, mciList) { console.log("getMciListCallbackSuccess"); @@ -108,13 +115,13 @@ function getMciListCallbackSuccess(caller, mciList) { // 클릭한 mci info 가져오기 // 표에서 선택된 MciId 받아옴 -async function getSelectedMciData(mciID) { +export async function getSelectedMciData() { - console.log('selectedMciID:', mciID); // 출력: mciID의 값 (예: com) - if (mciID != undefined && mciID != "") { + console.log('currentMciId:', currentMciId); // 출력: mciID의 값 (예: com) + if (currentMciId != undefined && currentMciId != "") { var selectedNsId = webconsolejs["common/api/services/workspace_api"].getCurrentProject()?.NsId - currentMciId = mciID - var mciResp = await webconsolejs["common/api/services/mci_api"].getMci(selectedNsId, mciID) + + var mciResp = await webconsolejs["common/api/services/mci_api"].getMci(selectedNsId, currentMciId) console.log("mciResp ", mciResp) if (mciResp.status.code != 200) { console.log("resp status ", mciResp.status) @@ -331,7 +338,7 @@ export async function vmDetailInfo(mciID, mciName, vmID) { var vmProviderIcon = "" vmProviderIcon += '' +
     providerName +
     ''; @@ -787,24 +794,39 @@ function initMciTable() { // 행 클릭 시 mciListTable.on("rowClick", function (e, row) { // vmid 초기화 for vmlifecycle - selectedVmId = "" - - var tempcurmciID = currentClickedmciID - - currentClickedmciID = row.getCell("id").getValue(); - if (tempcurmciID === currentClickedmciID) { + + // var tempcurmciID = currentClickedmciID + // currentClickedmciID = row.getCell("id").getValue(); + var tempcurmciID = row.getCell("id").getValue(); + if (tempcurmciID === currentMciId) { webconsolejs["partials/layout/navigatePages"].deactiveElement(document.getElementById("mci_info")) - currentClickedmciID = "" + currentMciId = "" this.deselectRow(); return - } else { + }else{ + currentMciId = tempcurmciID; webconsolejs["partials/layout/navigatePages"].activeElement(document.getElementById("mci_info")) this.deselectRow(); - this.selectRow(currentClickedmciID); + this.selectRow(currentMciId); // 표에서 선택된 MCISInfo - getSelectedMciData(currentClickedmciID) + getSelectedMciData() return } + // currentClickedmciID = + // console.log("currentClickedmciID == ", currentClickedmciID) + // if (tempcurmciID === currentClickedmciID) { + // webconsolejs["partials/layout/navigatePages"].deactiveElement(document.getElementById("mci_info")) + // currentClickedmciID = "" + // this.deselectRow(); + // return + // } else { + // webconsolejs["partials/layout/navigatePages"].activeElement(document.getElementById("mci_info")) + // this.deselectRow(); + // this.selectRow(currentClickedmciID); + // // 표에서 선택된 MCISInfo + // getSelectedMciData() + // return + // } }); //  선택된 여러개 row에 대해 처리 @@ -875,7 +897,7 @@ function providerFormatter(data) { vmCloudConnectionMap.forEach((value, key) => { mciProviderCell += '' +
       key +
       ''; diff --git a/front/assets/js/pages/operation/manage/pmk.js b/front/assets/js/pages/operation/manage/pmk.js index 1173de00..c8b9e3c0 100644 --- a/front/assets/js/pages/operation/manage/pmk.js +++ b/front/assets/js/pages/operation/manage/pmk.js @@ -24,12 +24,12 @@ export var nsid = ""; var totalPmkStatusMap = new Map(); var totalVmStatusMap = new Map(); // var totalCloudConnectionMap = new Map(); -var selectedVmId = ""; -var currentPmkId = ""; var pmkListTable; var checked_array = []; var selectedPmkID = "" +var currentPmkId = ""; + initPmkTable(); // init tabulator //DOMContentLoaded 는 Page에서 1개만. @@ -42,7 +42,7 @@ async function initPmk() { console.log("initPmk") ////////////////////// partials init functions/////////////////////////////////////// try { - webconsolejs["partials/operation/manage/pmkcreate"].initPmkCreate();//PmkCreate을 Partial로 가지고 있음. + webconsolejs["partials/operation/manage/clustercreate"].iniClusterkCreate();//PmkCreate을 Partial로 가지고 있음. } catch (e) { console.log(e); } @@ -56,8 +56,28 @@ async function initPmk() { webconsolejs["partials/layout/modal"].checkWorkspaceSelection(selectedWorkspaceProject) ////////////////////// set workspace list, project list at Navbar end ////////////////////////////////// + ////////////////////// 받은 pmkId가 있으면 해당 pmkId를 set하고 조회한다. //////////////// + + // 외부(dashboard)에서 받아온 pmkID가 있으면 pmk INFO 이동 + // 현재 브라우저의 URL + const url = window.location.href; + const urlObj = new URL(url); + // URLSearchParams 객체 생성 + const params = new URLSearchParams(urlObj.search); + if (params.toString()) { + var pmkID = params.get('pmkID');// pmkID 파라미터 값 추출 + if (pmkID !== null) { + currentPmkId = pmkID + } + } + console.log("ppp ", params) + console.log('before currentPmkId:', currentPmkId); + + refreshPmkList() +} - +// pmk목록 조회. init, refresh 에서 사용 +export async function refreshPmkList(){ if (selectedWorkspaceProject.projectId != "") { var selectedProjectId = selectedWorkspaceProject.projectId; var selectedNsId = selectedWorkspaceProject.nsId; @@ -66,21 +86,10 @@ async function initPmk() { var respPmkList = await webconsolejs["common/api/services/pmk_api"].getClusterList(selectedNsId); getPmkListCallbackSuccess(selectedProjectId, respPmkList); - - ////////////////////// 받은 pmkId가 있으면 해당 pmkId를 set하고 조회한다. //////////////// - // 외부(dashboard)에서 받아온 pmkID가 있으면 pmk INFO 이동 - // 현재 브라우저의 URL - const url = window.location.href; - const urlObj = new URL(url); - // URLSearchParams 객체 생성 - const params = new URLSearchParams(urlObj.search); - // pmkID 파라미터 값 추출 - selectedPmkID = params.get('pmkID'); - - console.log('selectedPmkID:', selectedPmkID); // 출력: pmkID의 값 (예: com) - if (selectedPmkID != undefined) { - toggleRowSelection(selectedPmkID) - getSelectedPmkData(selectedPmkID) + console.log('currentPmkId:', currentPmkId); // 출력: pmkID의 값 (예: com) + if (currentPmkId != undefined) { + toggleRowSelection(currentPmkId) + getSelectedPmkData() } //////////////////// pmkId를 set하고 조회 완료. //////////////// } @@ -132,13 +141,12 @@ function mappingTablePmkData(totalPmkListObj) { // 클릭한 pmk info 가져오기 // 표에서 선택된 PmkId 받아옴 -async function getSelectedPmkData(pmkID) { +export async function getSelectedPmkData() { - console.log('selectedPmkID:', pmkID); // 출력: pmkID의 값 (예: com) - if (pmkID != undefined && pmkID != "") { + if (currentPmkId != undefined && currentPmkId != "") { var selectedNsId = selectedWorkspaceProject.nsId; - currentPmkId = pmkID - var pmkResp = await webconsolejs["common/api/services/pmk_api"].getCluster(selectedNsId, pmkID) + + var pmkResp = await webconsolejs["common/api/services/pmk_api"].getCluster(selectedNsId, currentPmkId) if (pmkResp.status != 200) { console.log("resp status ", pmkResp.status) @@ -150,7 +158,11 @@ async function getSelectedPmkData(pmkID) { // Toggle PMK Info var div = document.getElementById("cluster_info"); - webconsolejs["partials/layout/navigatePages"].toggleElement(div) + const hasActiveClass = div.classList.contains("active"); + if (!hasActiveClass){ + // cluster_info 가 active면 toggle 필요 없음 + webconsolejs["partials/layout/navigatePages"].toggleElement(div) + } } } @@ -235,15 +247,7 @@ export function changePmkLifeCycle(type) { webconsolejs["common/api/services/pmk_api"].pmkLifeCycle(type, checked_array, selectedNsId) } -// vm life cycle 변경 -export function changeVmLifeCycle(type) { - var selectedNsId = selectedWorkspaceProject.nsId; - - webconsolejs["common/api/services/pmk_api"].vmLifeCycle(type, currentPmkId, selectedNsId, selectedVmId) -} - -// vm 상태별 icon으로 표시 -// Server List / Status VM리스트 +// NodeGroup / Status 리스트 function displayNodeGroupStatusList(pmkID, clusterData) { console.log("displayNodeGroupStatusList", clusterData) @@ -267,8 +271,8 @@ function displayNodeGroupStatusList(pmkID, clusterData) { $("#pmk_nodegroup_info_box").append(nodeLi); } -// Server List / Status VM 리스트에서 -// VM 한 개 클릭시 vm의 세부 정보 +// NodeGroup List / Status 리스트에서 +// Node의 한 개 클릭시 Node의 세부 정보 // export async function nodeGroupDetailInfo(pmkID, pmkName, nodeID) { var selectedNodeGroupName = "" export async function nodeGroupDetailInfo(pmkID, aNodejsonObject, nodeID) { @@ -659,10 +663,9 @@ function initPmkTable() { // vmid 초기화 for vmlifecycle // selectedClusterId = "" - var pmkID = row.getCell("id").getValue(); - + currentPmkId = row.getCell("id").getValue(); // 표에서 선택된 PmkInfo - getSelectedPmkData(pmkID) + getSelectedPmkData() }); @@ -703,19 +706,15 @@ function statusFormatter(cell) { // provider를 table에서 표시하기 위해 감싸기 function providerFormatter(data) { - var vmCloudConnectionMap = webconsolejs["common/api/services/pmk_api"].calculateConnectionCount( - data.getData() - ); - var pmkProviderCell = ""; - vmCloudConnectionMap.forEach((value, key) => { - pmkProviderCell += - '' +
-            key +
-            ''; - }); - + var providerImg = data.getData().providerImg; + + var pmkProviderCell = + '' +
+    providerImg +
+    ''; + return pmkProviderCell; } diff --git a/front/assets/js/partials/operation/manage/clustercreate.js b/front/assets/js/partials/operation/manage/clustercreate.js index 394fc1e3..aa4cb097 100644 --- a/front/assets/js/partials/operation/manage/clustercreate.js +++ b/front/assets/js/partials/operation/manage/clustercreate.js @@ -1,6 +1,6 @@ import { TabulatorFull as Tabulator } from "tabulator-tables"; //import { selectedMciObj } from "./mci"; -//document.addEventListener("DOMContentLoaded", initMciCreate) // page가 아닌 partials에서는 제거 +//document.addEventListener("DOMContentLoaded", iniClusterkCreate) // page가 아닌 partials에서는 제거 // create page 가 load 될 때 실행해야 할 것들 정의 export function iniClusterkCreate() { @@ -8,7 +8,7 @@ export function iniClusterkCreate() { // partial init functions - webconsolejs["partials/operation/manage/clusterecommendation"].initClusterRecommendation(webconsolejs["partials/operation/manage/clustercreate"].callbackClusterRecommendation);// recommend popup에서 사용하는 table 정의. + webconsolejs["partials/operation/manage/clusterrecommendation"].initClusterRecommendation(webconsolejs["partials/operation/manage/clustercreate"].callbackClusterRecommendation);// recommend popup에서 사용하는 table 정의. } // callback PopupData diff --git a/front/templates/pages/_operation/manage/mci.html b/front/templates/pages/_operation/manage/mci.html index 70944f2e..9216f53f 100644 --- a/front/templates/pages/_operation/manage/mci.html +++ b/front/templates/pages/_operation/manage/mci.html @@ -370,7 +370,9 @@

    List of MCI

    -
    + List of MCI
    - + List of Cluster
    - +
    - +
    - +