From a7061b57d4a66042c8ed35ae8005c517f35f2446 Mon Sep 17 00:00:00 2001 From: straumat Date: Mon, 11 Dec 2023 21:10:08 +0100 Subject: [PATCH 01/57] Update for next development version --- backend/explorer-core/autoconfigure/pom.xml | 2 +- backend/explorer-core/starter/pom.xml | 2 +- backend/servers/explorer-api/pom.xml | 2 +- backend/servers/explorer-batch/pom.xml | 2 +- backend/servers/explorer-web/pom.xml | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/explorer-core/autoconfigure/pom.xml b/backend/explorer-core/autoconfigure/pom.xml index cb944ff44..431ec119c 100644 --- a/backend/explorer-core/autoconfigure/pom.xml +++ b/backend/explorer-core/autoconfigure/pom.xml @@ -274,7 +274,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT ../../../pom.xml diff --git a/backend/explorer-core/starter/pom.xml b/backend/explorer-core/starter/pom.xml index 3aea18010..222dde4ec 100644 --- a/backend/explorer-core/starter/pom.xml +++ b/backend/explorer-core/starter/pom.xml @@ -114,7 +114,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT ../../../pom.xml diff --git a/backend/servers/explorer-api/pom.xml b/backend/servers/explorer-api/pom.xml index 323b7473b..8638fd916 100644 --- a/backend/servers/explorer-api/pom.xml +++ b/backend/servers/explorer-api/pom.xml @@ -311,7 +311,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT ../../../pom.xml diff --git a/backend/servers/explorer-batch/pom.xml b/backend/servers/explorer-batch/pom.xml index a21de9465..909340358 100644 --- a/backend/servers/explorer-batch/pom.xml +++ b/backend/servers/explorer-batch/pom.xml @@ -227,7 +227,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT ../../../pom.xml diff --git a/backend/servers/explorer-web/pom.xml b/backend/servers/explorer-web/pom.xml index 7286e62b6..5e3ee8800 100644 --- a/backend/servers/explorer-web/pom.xml +++ b/backend/servers/explorer-web/pom.xml @@ -291,7 +291,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT ../../../pom.xml diff --git a/pom.xml b/pom.xml index b575ccf0a..cf5cbb4e5 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.royllo.explorer explorer - 0.0.22 + 0.0.23-SNAPSHOT Royllo - A Taproot asset explorer Royllo explorer allows you to search for Taproot assets created on the Bitcoin blockchain pom From 3a9e48f30b2052978dd4d05fe0e3c05c032c8ba9 Mon Sep 17 00:00:00 2001 From: straumat Date: Mon, 11 Dec 2023 23:11:55 +0100 Subject: [PATCH 02/57] getAssetByAssetId() optimisation --- .../asset/AssetServiceImplementation.java | 26 ++++---- .../test/core/service/AssetServiceTest.java | 16 ++--- .../core/service/AssetStateServiceTest.java | 22 +++---- .../asset/AssetControllerTest.java | 20 +++---- .../search/SearchControllerTest.java | 60 +++++++++---------- 5 files changed, 75 insertions(+), 69 deletions(-) diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/asset/AssetServiceImplementation.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/asset/AssetServiceImplementation.java index a9b388cf9..ebb237cfe 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/asset/AssetServiceImplementation.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/asset/AssetServiceImplementation.java @@ -20,6 +20,7 @@ import static java.util.stream.Collectors.joining; import static org.royllo.explorer.core.util.constants.AnonymousUserConstants.ANONYMOUS_USER; +import static org.royllo.explorer.core.util.constants.TaprootAssetsConstants.ASSET_ID_SIZE; /** * {@link AssetService} implementation. @@ -159,23 +160,28 @@ public Optional getAssetByAssetId(final String assetId) { return Optional.empty(); } - Optional asset = assetRepository.findByAssetId(assetId.trim()); - if (asset.isEmpty()) { - logger.info("Asset with assetId {} not found, searching on assetIdAlias", assetId); - - // As asset id is not found, we search on asset id alias. - asset = assetRepository.findByAssetIdAlias(assetId.trim()); + if (assetId.length() == ASSET_ID_SIZE) { + // We received an asset id (we know it because of the size). + Optional asset = assetRepository.findByAssetId(assetId.trim()); if (asset.isPresent()) { - logger.info("Asset with assetIdAlias {} found: {}", assetId, asset.get()); + logger.info("Asset with assetId {} found: {}", assetId, asset.get()); return asset.map(ASSET_MAPPER::mapToAssetDTO); } else { - logger.info("Asset with assetId or assetIdAlias {} not found", assetId); + logger.info("Asset with assetId {} not found", assetId); return Optional.empty(); } } else { - logger.info("Asset with assetId {} found: {}", assetId, asset.get()); - return asset.map(ASSET_MAPPER::mapToAssetDTO); + // it's not an asset id (the size is not the good one), so we search on asset id alias. + Optional asset = assetRepository.findByAssetIdAlias(assetId.trim()); + if (asset.isPresent()) { + logger.info("Asset with assetIdAlias {} found: {}", assetId, asset.get()); + return asset.map(ASSET_MAPPER::mapToAssetDTO); + } else { + logger.info("Asset with assetIdAlias {} not found", assetId); + return Optional.empty(); + } } + } @Override diff --git a/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetServiceTest.java b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetServiceTest.java index 53ca6d5d4..0585ebc38 100644 --- a/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetServiceTest.java +++ b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetServiceTest.java @@ -271,25 +271,25 @@ public void addAssetWithAssetGroup() { // 4 assets : 1 with no asset group, 2 with the same asset group and 1 with another asset group. AssetDTO asset1 = AssetDTO.builder() - .assetId("asset1") + .assetId("asset10000000000000000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .build(); AssetDTO asset2 = AssetDTO.builder() - .assetId("asset2") + .assetId("asset20000000000000000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .assetGroup(AssetGroupDTO.builder() .assetGroupId("assetGroupId1") .tweakedGroupKey("assetGroup1").build()) .build(); AssetDTO asset3 = AssetDTO.builder() - .assetId("asset3") + .assetId("asset30000000000000000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .assetGroup(AssetGroupDTO.builder() .assetGroupId("assetGroupId1") .tweakedGroupKey("assetGroup1").build()) .build(); AssetDTO asset4 = AssetDTO.builder() - .assetId("asset4") + .assetId("asset40000000000000000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .assetGroup(AssetGroupDTO.builder() .assetGroupId("assetGroupId2") @@ -303,10 +303,10 @@ public void addAssetWithAssetGroup() { assetService.addAsset(asset4); // Asset retrieval. - AssetDTO asset1Created = assetService.getAssetByAssetId("asset1").orElse(null); - AssetDTO asset2Created = assetService.getAssetByAssetId("asset2").orElse(null); - AssetDTO asset3Created = assetService.getAssetByAssetId("asset3").orElse(null); - AssetDTO asset4Created = assetService.getAssetByAssetId("asset4").orElse(null); + AssetDTO asset1Created = assetService.getAssetByAssetId("asset10000000000000000000000000000000000000000000000000000000000").orElse(null); + AssetDTO asset2Created = assetService.getAssetByAssetId("asset20000000000000000000000000000000000000000000000000000000000").orElse(null); + AssetDTO asset3Created = assetService.getAssetByAssetId("asset30000000000000000000000000000000000000000000000000000000000").orElse(null); + AssetDTO asset4Created = assetService.getAssetByAssetId("asset40000000000000000000000000000000000000000000000000000000000").orElse(null); // Verification. assertNotNull(asset1Created); diff --git a/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetStateServiceTest.java b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetStateServiceTest.java index 549340582..bde83791d 100644 --- a/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetStateServiceTest.java +++ b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/AssetStateServiceTest.java @@ -94,7 +94,7 @@ public void addAssetState() { final AssetStateDTO firstAssetStateCreated = assetStateService.addAssetState(AssetStateDTO.builder() .creator(ANONYMOUS_USER_DTO) .asset(AssetDTO.builder() - .assetId("TEST_COIN_ASSET_ID") + .assetId("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .build()) .anchorBlockHash("TEST_ANCHOR_BLOCK_HASH") @@ -115,15 +115,15 @@ public void addAssetState() { // We check what was created. assertNotNull(firstAssetStateCreated.getId()); // Asset state id is calculated from the asset state data. - // TEST_COIN_ASSET_ID_ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558:0_TEST_SCRIPT_KEY - assertEquals("c8c6b3b8808a00749763400cf599442ac0a5687a8fd6715084768e3550bf9162", firstAssetStateCreated.getAssetStateId()); + // TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000_ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558:0_TEST_SCRIPT_KEY + assertEquals("cbac989304d353d8c8bbe7b19b1e1e352f317a7545e342584a30aa8875510e2f", firstAssetStateCreated.getAssetStateId()); // User. assertNotNull(firstAssetStateCreated.getCreator()); assertEquals(ANONYMOUS_USER_ID, firstAssetStateCreated.getCreator().getUserId()); // Asset. assertNotNull(firstAssetStateCreated.getAsset()); assertNotNull(firstAssetStateCreated.getAsset().getId()); - assertEquals("TEST_COIN_ASSET_ID", firstAssetStateCreated.getAsset().getAssetId()); + assertEquals("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000", firstAssetStateCreated.getAsset().getAssetId()); // Asset group. assertNull(firstAssetStateCreated.getAsset().getAssetGroup()); // Asset state data. @@ -138,7 +138,7 @@ public void addAssetState() { assertEquals("TEST_SCRIPT_KEY", firstAssetStateCreated.getScriptKey()); // Test if the asset exists in database. - final Optional assetCreated = assetService.getAssetByAssetId("TEST_COIN_ASSET_ID"); + final Optional assetCreated = assetService.getAssetByAssetId("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000"); assertTrue(assetCreated.isPresent()); assertNotNull(assetCreated.get().getId()); @@ -147,7 +147,7 @@ public void addAssetState() { e = assertThrows(AssertionError.class, () -> assetStateService.addAssetState(AssetStateDTO.builder() .creator(ANONYMOUS_USER_DTO) .asset(AssetDTO.builder() - .assetId("TEST_COIN_ASSET_ID") + .assetId("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .build()) .anchorBlockHash("TEST_ANCHOR_BLOCK_HASH") @@ -171,7 +171,7 @@ public void addAssetState() { assetStateService.addAssetState(AssetStateDTO.builder() .creator(ANONYMOUS_USER_DTO) .asset(AssetDTO.builder() - .assetId("TEST_COIN_ASSET_ID") + .assetId("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000") .genesisPoint(bto.get()) .build()) .anchorBlockHash("TEST_ANCHOR_BLOCK_HASH_2") @@ -190,19 +190,19 @@ public void addAssetState() { assertEquals(assetStateCount + 2, assetStateRepository.findAll().size()); // We check what was created (this time we used the getByAssetId() method). - final Optional secondAssetStateCreated = assetStateService.getAssetStateByAssetStateId("31c9f36b393bbeb968b973fe16fade5ab6e65e0dfd7fee10f4254627f0f70c53"); + final Optional secondAssetStateCreated = assetStateService.getAssetStateByAssetStateId("941d2c356c616893f716376f79b820092e03f697c4b4eebf62f3ceb5cd01b72c"); assertTrue(secondAssetStateCreated.isPresent()); assertNotNull(secondAssetStateCreated.get().getId()); // Asset state id is calculated from the asset state data. - // TEST_COIN_ASSET_ID_ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558:0_TEST_SCRIPT_KEY_2 - assertEquals("31c9f36b393bbeb968b973fe16fade5ab6e65e0dfd7fee10f4254627f0f70c53", secondAssetStateCreated.get().getAssetStateId()); + // TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000_ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558:0_TEST_SCRIPT_KEY_2 + assertEquals("941d2c356c616893f716376f79b820092e03f697c4b4eebf62f3ceb5cd01b72c", secondAssetStateCreated.get().getAssetStateId()); // User. assertNotNull(secondAssetStateCreated.get().getCreator()); assertEquals(ANONYMOUS_USER_ID, secondAssetStateCreated.get().getCreator().getUserId()); // Asset. assertNotNull(secondAssetStateCreated.get().getAsset()); assertNotNull(secondAssetStateCreated.get().getAsset().getId()); - assertEquals("TEST_COIN_ASSET_ID", secondAssetStateCreated.get().getAsset().getAssetId()); + assertEquals("TEST_COIN_ASSET_ID_000000000000000000000000000000000000000000000", secondAssetStateCreated.get().getAsset().getAssetId()); // Asset group. assertNull(secondAssetStateCreated.get().getAsset().getAssetGroup()); // Asset state data. diff --git a/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/asset/AssetControllerTest.java b/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/asset/AssetControllerTest.java index c1ed24f6c..44b1a37eb 100644 --- a/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/asset/AssetControllerTest.java +++ b/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/asset/AssetControllerTest.java @@ -135,7 +135,7 @@ void assetGroupPageWithPagination(final HttpHeaders headers) throws Exception { createFakeAssets(); // Page 1. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/group").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/group").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_GROUP_PAGE))) // Checking group tab data. @@ -151,7 +151,7 @@ void assetGroupPageWithPagination(final HttpHeaders headers) throws Exception { .andExpect(content().string(not(containsString(getMessage(messages, "asset.view.error.assetNotFound"))))); // Page 10. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/group?page=10").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/group?page=10").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_GROUP_PAGE))) // Checking group tab data. @@ -175,7 +175,7 @@ void assetStatesPageWithPagination(final HttpHeaders headers) throws Exception { createFakeAssets(); // Page 1. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/states").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/states").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_STATES_PAGE))) // Checking pagination. @@ -188,7 +188,7 @@ void assetStatesPageWithPagination(final HttpHeaders headers) throws Exception { .andExpect(content().string(not(containsString(getMessage(messages, "asset.view.error.assetNotFound"))))); // Page 5. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/states?page=5").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/states?page=5").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_STATES_PAGE))) // Checking pagination. @@ -209,7 +209,7 @@ void assetProofsPageWithPagination(final HttpHeaders headers) throws Exception { createFakeAssets(); // Page 1. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/proofs").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/proofs").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_PROOFS_PAGE))) // Checking pagination. @@ -222,7 +222,7 @@ void assetProofsPageWithPagination(final HttpHeaders headers) throws Exception { .andExpect(content().string(not(containsString(getMessage(messages, "asset.view.error.assetNotFound"))))); // Page 5. - mockMvc.perform(get("/asset/FAKE_ASSET_ID_01/proofs?page=3").headers(headers)) + mockMvc.perform(get("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001/proofs?page=3").headers(headers)) .andExpect(status().isOk()) .andExpect(view().name(containsString(ASSET_PROOFS_PAGE))) // Checking pagination. @@ -256,16 +256,16 @@ private void createFakeAssets() { // Create fake assets. for (int i = 1; i <= 99; i++) { - final Optional assetFound = assetService.getAssetByAssetId("FAKE_ASSET_ID_" + String.format("%02d", i)); + final Optional assetFound = assetService.getAssetByAssetId("FAKE_ASSET_ID_000000000000000000000000000000000000000000000000" + String.format("%02d", i)); if (assetFound.isEmpty()) { assetService.addAsset( AssetDTO.builder() .creator(ANONYMOUS_USER_DTO) .assetGroup(assetGroupDTO) - .assetId("FAKE_ASSET_ID_" + String.format("%02d", i)) + .assetId("FAKE_ASSET_ID_000000000000000000000000000000000000000000000000" + String.format("%02d", i)) .genesisPoint(bto.get()) .metaDataHash("metadata") - .name("FAKE_ASSET_NAME_" + String.format("%02d", i)) + .name("FAKE_ASSET_NAME_000000000000000000000000000000000000000000000000" + String.format("%02d", i)) .outputIndex(0) .version(0) .type(NORMAL) @@ -276,7 +276,7 @@ private void createFakeAssets() { } // Create fake asset states. - final Optional assetForAssetTest = assetService.getAssetByAssetId("FAKE_ASSET_ID_01"); + final Optional assetForAssetTest = assetService.getAssetByAssetId("FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001"); if (assetForAssetTest.isPresent()) { for (int i = 1; i <= 50; i++) { final AssetStateDTO assetToCreate = AssetStateDTO.builder() diff --git a/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/search/SearchControllerTest.java b/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/search/SearchControllerTest.java index 57d9fe5d8..a4f01dfcc 100644 --- a/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/search/SearchControllerTest.java +++ b/backend/servers/explorer-web/src/test/java/org/royllo/explorer/web/test/controllers/search/SearchControllerTest.java @@ -119,17 +119,17 @@ void searchPageWithResultsOnSeveralPages(final HttpHeaders headers) throws Excep .andExpect(status().isOk()) .andExpect(view().name(containsString(SEARCH_PAGE))) // Checking results. - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_01"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_02"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_03"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_04"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_05"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_06"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_07"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_08"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_09"))) - .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_10"))) - .andExpect(content().string(not(containsString("/asset/FAKE_ASSET_ID_11")))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000001"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000002"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000003"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000004"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000005"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000006"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000007"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000008"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000009"))) + .andExpect(content().string(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000010"))) + .andExpect(content().string(not(containsString("/asset/FAKE_ASSET_ID_00000000000000000000000000000000000000000000000011")))) // Checking pages. .andExpect(content().string(not(containsString("previousPage")))) .andExpect(content().string(containsString(">1/101/102/1010/10 assetFound = assetService.getAssetByAssetId("FAKE_ASSET_ID_" + String.format("%02d", i)); + final Optional assetFound = assetService.getAssetByAssetId("FAKE_ASSET_ID_000000000000000000000000000000000000000000000000" + String.format("%02d", i)); if (assetFound.isEmpty()) { assetService.addAsset( AssetDTO.builder() .creator(ANONYMOUS_USER_DTO) .assetGroup(assetGroupDTO) - .assetId("FAKE_ASSET_ID_" + String.format("%02d", i)) + .assetId("FAKE_ASSET_ID_000000000000000000000000000000000000000000000000" + String.format("%02d", i)) .genesisPoint(bto.get()) .metaDataHash("metadata") - .name("FAKE_ASSET_NAME_" + String.format("%02d", i)) + .name("FAKE_ASSET_NAME_000000000000000000000000000000000000000000000000" + String.format("%02d", i)) .outputIndex(0) .version(0) .type(NORMAL) From dce99119849b05b5a6990040af1901ac88e54b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Traumat?= Date: Tue, 12 Dec 2023 09:54:31 +0100 Subject: [PATCH 03/57] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9cf149d12..6a664f66f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Key features for users include: - Search for Taproot assets and proofs using our user-friendly web interface. - Add your proofs to our database to let the world discover and learn about your assets. -- Add universe servers to let us discover new data automatically (Work in progress). +- Add your universe server to let us discover new assets automatically. - Build new applications, services, and tools effortlessly using our GraphQL API A live version is available here: [https://explorer.royllo.org/](https://explorer.royllo.org/) @@ -43,4 +43,4 @@ Just run : `docker-compose up` ## Contact -Feel free to contact me: [straumat](https://github.com/straumat) \ No newline at end of file +Feel free to contact me: [straumat](https://github.com/straumat) From 8e383f5ee91708fe485e0c450c7d0621bc48d8c1 Mon Sep 17 00:00:00 2001 From: straumat Date: Fri, 15 Dec 2023 15:39:44 +0100 Subject: [PATCH 04/57] Adding missing fields --- .../core/domain/asset/AssetState.java | 8 +++ .../core/dto/asset/AssetStateDTO.java | 6 ++ .../provider/tapd/DecodedProofResponse.java | 53 +++++++++++++++++- .../tapd/TapdServiceImplementation.java | 2 +- .../core/util/mapper/AssetStateMapper.java | 2 + .../core/util/mapper/RequestMapper.java | 2 +- .../changelog/1.0.0/data/data-asset_state.xml | 2 + .../1.0.0/table/table-asset_state.xml | 4 ++ .../core/test/util/TestWithMockServers.java | 8 +++ .../db/test/test-data-asset_state.xml | 20 +++++++ .../resources/db/dev/dev-data-asset_state.xml | 16 ++++++ .../db/test/api-test-data-asset_state.xml | 20 +++++++ .../resources/db/dev/dev-data-asset_state.xml | 20 +++++++ .../db/test/web-test-data-asset_state.xml | 20 +++++++ util/test/common-test/justfile | 2 +- .../tapd/asset/DecodedProofValueResponse.java | 28 ++++++++- ...e967fe8c474b2d2242d5a349da3d-response.json | 1 + ...6d83bd217523888feee6a8553ec8-response.json | 1 + ...ef153800086cf879baae89d9df76-response.json | 1 + ...84fafc814cab7b22a97bacfa6825-response.json | 1 + ...d7976f7aa33efb615b408737b0ad-response.json | 1 + ...1a6fc6a7450664e15559ad770b90-response.json | 1 + ...1573afe6fbf20c35935ce4bb0413-response.json | 1 + ...ab7b6988b3cd73aac95b9e077b1f-response.json | 1 + ...573124dbc82526d02bbad5b3d9c7-response.json | 1 + ...5b519f282d41e10ce117beb97558-response.json | 1 + ...1194af236d789a79683c9ec76526-response.json | 1 + ...3c96f3fb85bfd756ba66626b9fcb-response.json | 1 + ...33f0fc4a7c85f2191aa8d49ce0d3-response.json | 1 + .../main/resources/tapd/admin-local.macaroon | Bin 209 -> 209 bytes ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 13 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 13 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 15 ++++- ...roof-proofFile2-proofAtDepth0-request.json | 2 +- ...oof-proofFile2-proofAtDepth0-response.json | 15 ++++- ...roof-proofFile3-proofAtDepth0-request.json | 2 +- ...oof-proofFile3-proofAtDepth0-response.json | 15 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 13 ++++- ...roof-proofFile2-proofAtDepth0-request.json | 2 +- ...oof-proofFile2-proofAtDepth0-response.json | 52 ++++++++++++++++- ...roof-proofFile2-proofAtDepth1-request.json | 2 +- ...oof-proofFile2-proofAtDepth1-response.json | 13 ++++- ...roof-proofFile3-proofAtDepth0-request.json | 2 +- ...oof-proofFile3-proofAtDepth0-response.json | 52 ++++++++++++++++- ...roof-proofFile3-proofAtDepth1-request.json | 2 +- ...oof-proofFile3-proofAtDepth1-response.json | 15 ++++- ...roof-proofFile3-proofAtDepth2-request.json | 2 +- ...oof-proofFile3-proofAtDepth2-response.json | 13 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 13 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 15 ++++- ...roof-proofFile1-proofAtDepth0-request.json | 2 +- ...oof-proofFile1-proofAtDepth0-response.json | 15 ++++- 59 files changed, 494 insertions(+), 34 deletions(-) diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/domain/asset/AssetState.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/domain/asset/AssetState.java index eb9cadfb9..f9cf636a5 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/domain/asset/AssetState.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/domain/asset/AssetState.java @@ -106,6 +106,10 @@ public class AssetState extends BaseDomain { @Column(name = "SCRIPT_KEY") private String scriptKey; + /** Indicates whether the asset has been spent. */ + @Column(name = "SPENT") + private boolean spent; + /** If the asset has been leased, this is the owner (application ID) of the lease. */ @Column(name = "LEASE_OWNER") private String leaseOwner; @@ -114,6 +118,10 @@ public class AssetState extends BaseDomain { @Column(name = "LEASE_EXPIRY") private long leaseExpiry; + /** Indicates whether this transfer was an asset burn. If true, the number of assets in this output are destroyed and can no longer be spent. */ + @Column(name = "BURN") + private boolean burn; + /** The merkle proof for AnchorTx used to prove its inclusion within BlockHeader. */ @Column(name = "TX_MERKLE_PROOF") private String txMerkleProof; diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/asset/AssetStateDTO.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/asset/AssetStateDTO.java index 06bbbf091..0dd9e6409 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/asset/AssetStateDTO.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/asset/AssetStateDTO.java @@ -79,12 +79,18 @@ public class AssetStateDTO { @NotNull(message = "Script key is required") String scriptKey; + /** Indicates whether the asset has been spent. */ + boolean spent; + /** If the asset has been leased, this is the owner (application ID) of the lease. */ String leaseOwner; /** If the asset has been leased, this is the expiry of the lease as a Unix timestamp in seconds. */ Long leaseExpiry; + /** Indicates whether this transfer was an asset burn. If true, the number of assets in this output are destroyed and can no longer be spent. */ + boolean burn; + /** The merkle proof for AnchorTx used to prove its inclusion within BlockHeader. */ String txMerkleProof; diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/DecodedProofResponse.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/DecodedProofResponse.java index b44151615..cf59e1b32 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/DecodedProofResponse.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/DecodedProofResponse.java @@ -7,7 +7,11 @@ import lombok.Setter; import lombok.ToString; +import javax.xml.bind.DatatypeConverter; import java.math.BigInteger; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.List; /** @@ -125,7 +129,7 @@ public static class Asset { /** Previous witnesses. */ @JsonProperty("prev_witnesses") - List prevWitnesses; + List prevWitnesses; /** Indicates whether the asset has been spent. */ @JsonProperty("is_spent") @@ -160,6 +164,53 @@ public final Long getLeaseExpiryTimestamp() { } } + /** + * Returns the calculated state id. + * + * @return asset state id (calculated) + */ + public String getAssetStateId() { + // If we are in an asset state creation, asset state id is null, so we calculate it. + // We calculate the asset state id here. + String uniqueValue = assetGenesis.getAssetId() + + "_" + chainAnchor.getAnchorOutpoint() + + "_" + scriptKey; + + try { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + byte[] digest = md.digest(uniqueValue.getBytes(StandardCharsets.UTF_8)); + return DatatypeConverter.printHexBinary(digest).toLowerCase(); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("SHA-256 is not available: " + e.getMessage()); + } + } + + @Getter + @Setter + @NoArgsConstructor + @ToString + @JsonIgnoreProperties(ignoreUnknown = true) + public static class PrevWitness { + + /** Split commitment. */ + @JsonProperty("split_commitment") + private SplitCommitment splitCommitment; + + } + + @Getter + @Setter + @NoArgsConstructor + @ToString + @JsonIgnoreProperties(ignoreUnknown = true) + public static class SplitCommitment { + + /** Script key. */ + @JsonProperty("script_key") + private String scriptKey; + + } + @Getter @Setter @NoArgsConstructor diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/TapdServiceImplementation.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/TapdServiceImplementation.java index 2a0738784..72fb7877f 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/TapdServiceImplementation.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/provider/tapd/TapdServiceImplementation.java @@ -104,7 +104,7 @@ public final Mono decode(final String proof, final long pr .body(BodyInserters.fromValue(DecodedProofRequest.builder() .rawProof(proof) .proofAtDepth(proofAtDepth) - .withPrevWitnesses(false) + .withPrevWitnesses(true) .withMetaReveal(false) .build() )) diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/AssetStateMapper.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/AssetStateMapper.java index bc3e35df6..1fe16c244 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/AssetStateMapper.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/AssetStateMapper.java @@ -45,8 +45,10 @@ public interface AssetStateMapper { @Mapping(source = "asset.scriptVersion", target = "scriptVersion") @Mapping(source = "asset.scriptKey", target = "scriptKey") + @Mapping(source = "asset.isSpent", target = "spent") @Mapping(source = "asset.leaseOwner", target = "leaseOwner") @Mapping(source = "asset.leaseExpiryTimestamp", target = "leaseExpiry") + @Mapping(source = "asset.isBurn", target = "burn") @Mapping(source = "txMerkleProof", target = "txMerkleProof") @Mapping(source = "inclusionProof", target = "inclusionProof") diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/RequestMapper.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/RequestMapper.java index 46c3a327c..77bf76991 100644 --- a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/RequestMapper.java +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/util/mapper/RequestMapper.java @@ -18,7 +18,7 @@ */ @SuppressWarnings("unused") @Mapper(nullValuePropertyMappingStrategy = IGNORE, - uses = {UserMapper.class, BitcoinMapper.class, AssetMapper.class, UserMapper.class}) + uses = {UserMapper.class, BitcoinMapper.class, AssetMapper.class, UserMapper.class, UniverseServerMapper.class}) public interface RequestMapper { // ================================================================================================================= diff --git a/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/data/data-asset_state.xml b/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/data/data-asset_state.xml index 5f930385b..775d502cc 100644 --- a/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/data/data-asset_state.xml +++ b/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/data/data-asset_state.xml @@ -33,8 +33,10 @@ + + diff --git a/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/table/table-asset_state.xml b/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/table/table-asset_state.xml index 18abded73..26d638ffa 100644 --- a/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/table/table-asset_state.xml +++ b/backend/explorer-core/autoconfigure/src/main/resources/db/changelog/1.0.0/table/table-asset_state.xml @@ -55,10 +55,14 @@ remarks="The version of the script, only version 0 is defined at present"/> + + + + @@ -47,8 +49,10 @@ + + @@ -68,8 +72,10 @@ + + @@ -89,8 +95,10 @@ + + @@ -114,8 +122,10 @@ + + @@ -135,8 +145,10 @@ + + @@ -156,8 +168,10 @@ + + @@ -177,8 +191,10 @@ + + @@ -202,8 +218,10 @@ + + @@ -223,8 +241,10 @@ + + diff --git a/backend/servers/explorer-api/src/main/resources/db/dev/dev-data-asset_state.xml b/backend/servers/explorer-api/src/main/resources/db/dev/dev-data-asset_state.xml index a550f8f30..d0faaee34 100644 --- a/backend/servers/explorer-api/src/main/resources/db/dev/dev-data-asset_state.xml +++ b/backend/servers/explorer-api/src/main/resources/db/dev/dev-data-asset_state.xml @@ -22,8 +22,10 @@ + + @@ -47,8 +49,10 @@ + + @@ -68,8 +72,10 @@ + + @@ -89,8 +95,10 @@ + + @@ -131,8 +139,10 @@ + + @@ -152,8 +162,10 @@ + + @@ -173,8 +185,10 @@ + + @@ -215,8 +229,10 @@ + + diff --git a/backend/servers/explorer-api/src/test/resources/db/test/api-test-data-asset_state.xml b/backend/servers/explorer-api/src/test/resources/db/test/api-test-data-asset_state.xml index b53d14289..a289af69d 100644 --- a/backend/servers/explorer-api/src/test/resources/db/test/api-test-data-asset_state.xml +++ b/backend/servers/explorer-api/src/test/resources/db/test/api-test-data-asset_state.xml @@ -22,8 +22,10 @@ + + @@ -47,8 +49,10 @@ + + @@ -68,8 +72,10 @@ + + @@ -89,8 +95,10 @@ + + @@ -114,8 +122,10 @@ + + @@ -135,8 +145,10 @@ + + @@ -156,8 +168,10 @@ + + @@ -177,8 +191,10 @@ + + @@ -202,8 +218,10 @@ + + @@ -223,8 +241,10 @@ + + diff --git a/backend/servers/explorer-web/src/main/resources/db/dev/dev-data-asset_state.xml b/backend/servers/explorer-web/src/main/resources/db/dev/dev-data-asset_state.xml index b53d14289..a289af69d 100644 --- a/backend/servers/explorer-web/src/main/resources/db/dev/dev-data-asset_state.xml +++ b/backend/servers/explorer-web/src/main/resources/db/dev/dev-data-asset_state.xml @@ -22,8 +22,10 @@ + + @@ -47,8 +49,10 @@ + + @@ -68,8 +72,10 @@ + + @@ -89,8 +95,10 @@ + + @@ -114,8 +122,10 @@ + + @@ -135,8 +145,10 @@ + + @@ -156,8 +168,10 @@ + + @@ -177,8 +191,10 @@ + + @@ -202,8 +218,10 @@ + + @@ -223,8 +241,10 @@ + + diff --git a/backend/servers/explorer-web/src/test/resources/db/test/web-test-data-asset_state.xml b/backend/servers/explorer-web/src/test/resources/db/test/web-test-data-asset_state.xml index b53d14289..a289af69d 100644 --- a/backend/servers/explorer-web/src/test/resources/db/test/web-test-data-asset_state.xml +++ b/backend/servers/explorer-web/src/test/resources/db/test/web-test-data-asset_state.xml @@ -22,8 +22,10 @@ + + @@ -47,8 +49,10 @@ + + @@ -68,8 +72,10 @@ + + @@ -89,8 +95,10 @@ + + @@ -114,8 +122,10 @@ + + @@ -135,8 +145,10 @@ + + @@ -156,8 +168,10 @@ + + @@ -177,8 +191,10 @@ + + @@ -202,8 +218,10 @@ + + @@ -223,8 +241,10 @@ + + diff --git a/util/test/common-test/justfile b/util/test/common-test/justfile index 90ba83db9..8f83846f9 100644 --- a/util/test/common-test/justfile +++ b/util/test/common-test/justfile @@ -12,7 +12,7 @@ run_tapd: retrieve_local_macaroon: rm -f ./src/main/resources/tapd/admin-local.macaroon - sudo cp /var/lib/docker/volumes/tapd/_data/data/testnet/admin.macaroon ./src/main/resources/tapd/admin-local.macaroon + sudo cp /var/snap/docker/common/var-lib-docker/volumes/tapd/_data/data/testnet/admin.macaroon ./src/main/resources/tapd/admin-local.macaroon sudo chown $USER ./src/main/resources/tapd/admin-local.macaroon curl --header "Grpc-Metadata-macaroon: $(xxd -ps -u -c 1000 ./src/main/resources/tapd/admin-local.macaroon)" \ -X POST --insecure https://localhost:8089/v1/taproot-assets/getinfo | jq diff --git a/util/test/common-test/src/main/java/org/royllo/test/tapd/asset/DecodedProofValueResponse.java b/util/test/common-test/src/main/java/org/royllo/test/tapd/asset/DecodedProofValueResponse.java index ebc9265e9..cd2177c09 100644 --- a/util/test/common-test/src/main/java/org/royllo/test/tapd/asset/DecodedProofValueResponse.java +++ b/util/test/common-test/src/main/java/org/royllo/test/tapd/asset/DecodedProofValueResponse.java @@ -129,7 +129,7 @@ public static class Asset { /** Previous witnesses. */ @JsonProperty("prev_witnesses") - List prevWitnesses; + List prevWitnesses; /** Indicates whether the asset has been spent. */ @JsonProperty("is_spent") @@ -185,6 +185,32 @@ public String getAssetStateId() { } } + @Getter + @Setter + @NoArgsConstructor + @ToString + @JsonIgnoreProperties(ignoreUnknown = true) + public static class PrevWitness { + + /** Split commitment. */ + @JsonProperty("split_commitment") + private SplitCommitment splitCommitment; + + } + + @Getter + @Setter + @NoArgsConstructor + @ToString + @JsonIgnoreProperties(ignoreUnknown = true) + public static class SplitCommitment { + + /** Script key. */ + @JsonProperty("script_key") + private String scriptKey; + + } + @Getter @Setter @NoArgsConstructor diff --git a/util/test/common-test/src/main/resources/mempool/0516611bebe6a92675ee7360ad64edf0b3b2e967fe8c474b2d2242d5a349da3d-response.json b/util/test/common-test/src/main/resources/mempool/0516611bebe6a92675ee7360ad64edf0b3b2e967fe8c474b2d2242d5a349da3d-response.json index 64bae3684..11fc16ce6 100644 --- a/util/test/common-test/src/main/resources/mempool/0516611bebe6a92675ee7360ad64edf0b3b2e967fe8c474b2d2242d5a349da3d-response.json +++ b/util/test/common-test/src/main/resources/mempool/0516611bebe6a92675ee7360ad64edf0b3b2e967fe8c474b2d2242d5a349da3d-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 3565, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/2727229cc771efa552f9232a04b0cd8d16df6d83bd217523888feee6a8553ec8-response.json b/util/test/common-test/src/main/resources/mempool/2727229cc771efa552f9232a04b0cd8d16df6d83bd217523888feee6a8553ec8-response.json index 5a030d204..dc4a42edf 100644 --- a/util/test/common-test/src/main/resources/mempool/2727229cc771efa552f9232a04b0cd8d16df6d83bd217523888feee6a8553ec8-response.json +++ b/util/test/common-test/src/main/resources/mempool/2727229cc771efa552f9232a04b0cd8d16df6d83bd217523888feee6a8553ec8-response.json @@ -65,6 +65,7 @@ ], "size": 355, "weight": 1018, + "sigops": 0, "fee": 1574, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/2777e306451f6d5231f4b17b8286412e1e13ef153800086cf879baae89d9df76-response.json b/util/test/common-test/src/main/resources/mempool/2777e306451f6d5231f4b17b8286412e1e13ef153800086cf879baae89d9df76-response.json index 4bb5db3ae..3993f9ed6 100644 --- a/util/test/common-test/src/main/resources/mempool/2777e306451f6d5231f4b17b8286412e1e13ef153800086cf879baae89d9df76-response.json +++ b/util/test/common-test/src/main/resources/mempool/2777e306451f6d5231f4b17b8286412e1e13ef153800086cf879baae89d9df76-response.json @@ -41,6 +41,7 @@ ], "size": 222, "weight": 561, + "sigops": 1, "fee": 14100, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/2debb29de64ed7aafaf79c034f1ba22c41f484fafc814cab7b22a97bacfa6825-response.json b/util/test/common-test/src/main/resources/mempool/2debb29de64ed7aafaf79c034f1ba22c41f484fafc814cab7b22a97bacfa6825-response.json index 0ab31da8c..a1a6d01cb 100644 --- a/util/test/common-test/src/main/resources/mempool/2debb29de64ed7aafaf79c034f1ba22c41f484fafc814cab7b22a97bacfa6825-response.json +++ b/util/test/common-test/src/main/resources/mempool/2debb29de64ed7aafaf79c034f1ba22c41f484fafc814cab7b22a97bacfa6825-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 930, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/632d0c3935fff230aa3718e268dce5517786d7976f7aa33efb615b408737b0ad-response.json b/util/test/common-test/src/main/resources/mempool/632d0c3935fff230aa3718e268dce5517786d7976f7aa33efb615b408737b0ad-response.json index 97b21371f..06358bd2f 100644 --- a/util/test/common-test/src/main/resources/mempool/632d0c3935fff230aa3718e268dce5517786d7976f7aa33efb615b408737b0ad-response.json +++ b/util/test/common-test/src/main/resources/mempool/632d0c3935fff230aa3718e268dce5517786d7976f7aa33efb615b408737b0ad-response.json @@ -41,6 +41,7 @@ ], "size": 246, "weight": 657, + "sigops": 1, "fee": 1155, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/6db79f5af2ba65bfb4044ced690f3acb4a791a6fc6a7450664e15559ad770b90-response.json b/util/test/common-test/src/main/resources/mempool/6db79f5af2ba65bfb4044ced690f3acb4a791a6fc6a7450664e15559ad770b90-response.json index 4517d2bce..7df09bd2c 100644 --- a/util/test/common-test/src/main/resources/mempool/6db79f5af2ba65bfb4044ced690f3acb4a791a6fc6a7450664e15559ad770b90-response.json +++ b/util/test/common-test/src/main/resources/mempool/6db79f5af2ba65bfb4044ced690f3acb4a791a6fc6a7450664e15559ad770b90-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 2325, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/77b550de10ad347daf314f4982a979db6d101573afe6fbf20c35935ce4bb0413-response.json b/util/test/common-test/src/main/resources/mempool/77b550de10ad347daf314f4982a979db6d101573afe6fbf20c35935ce4bb0413-response.json index 6c3824538..6a5f9d274 100644 --- a/util/test/common-test/src/main/resources/mempool/77b550de10ad347daf314f4982a979db6d101573afe6fbf20c35935ce4bb0413-response.json +++ b/util/test/common-test/src/main/resources/mempool/77b550de10ad347daf314f4982a979db6d101573afe6fbf20c35935ce4bb0413-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 930, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/89cd5498584f217ca77d50e740e56490a710ab7b6988b3cd73aac95b9e077b1f-response.json b/util/test/common-test/src/main/resources/mempool/89cd5498584f217ca77d50e740e56490a710ab7b6988b3cd73aac95b9e077b1f-response.json index 996071c95..8e79e7a4e 100644 --- a/util/test/common-test/src/main/resources/mempool/89cd5498584f217ca77d50e740e56490a710ab7b6988b3cd73aac95b9e077b1f-response.json +++ b/util/test/common-test/src/main/resources/mempool/89cd5498584f217ca77d50e740e56490a710ab7b6988b3cd73aac95b9e077b1f-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 775, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/c28a42586b36ac499c6d36da792d98176572573124dbc82526d02bbad5b3d9c7-response.json b/util/test/common-test/src/main/resources/mempool/c28a42586b36ac499c6d36da792d98176572573124dbc82526d02bbad5b3d9c7-response.json index 8380c991b..66e8313f7 100644 --- a/util/test/common-test/src/main/resources/mempool/c28a42586b36ac499c6d36da792d98176572573124dbc82526d02bbad5b3d9c7-response.json +++ b/util/test/common-test/src/main/resources/mempool/c28a42586b36ac499c6d36da792d98176572573124dbc82526d02bbad5b3d9c7-response.json @@ -41,6 +41,7 @@ ], "size": 246, "weight": 657, + "sigops": 1, "fee": 2475, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558-response.json b/util/test/common-test/src/main/resources/mempool/ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558-response.json index b2455ce5b..8a93d7e6e 100644 --- a/util/test/common-test/src/main/resources/mempool/ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558-response.json +++ b/util/test/common-test/src/main/resources/mempool/ca8d2eb13b25fd0b363d92de2655988b49bc5b519f282d41e10ce117beb97558-response.json @@ -41,6 +41,7 @@ ], "size": 247, "weight": 658, + "sigops": 1, "fee": 12375, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/ca93a44b534f410914c18ed4563c97b0a6c31194af236d789a79683c9ec76526-response.json b/util/test/common-test/src/main/resources/mempool/ca93a44b534f410914c18ed4563c97b0a6c31194af236d789a79683c9ec76526-response.json index dcf8f473f..9152458ab 100644 --- a/util/test/common-test/src/main/resources/mempool/ca93a44b534f410914c18ed4563c97b0a6c31194af236d789a79683c9ec76526-response.json +++ b/util/test/common-test/src/main/resources/mempool/ca93a44b534f410914c18ed4563c97b0a6c31194af236d789a79683c9ec76526-response.json @@ -40,6 +40,7 @@ ], "size": 205, "weight": 616, + "sigops": 0, "fee": 1240, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/d22de9a2de657c262a2c20c14500b8adca593c96f3fb85bfd756ba66626b9fcb-response.json b/util/test/common-test/src/main/resources/mempool/d22de9a2de657c262a2c20c14500b8adca593c96f3fb85bfd756ba66626b9fcb-response.json index fc7074946..425e95c06 100644 --- a/util/test/common-test/src/main/resources/mempool/d22de9a2de657c262a2c20c14500b8adca593c96f3fb85bfd756ba66626b9fcb-response.json +++ b/util/test/common-test/src/main/resources/mempool/d22de9a2de657c262a2c20c14500b8adca593c96f3fb85bfd756ba66626b9fcb-response.json @@ -203,6 +203,7 @@ ], "size": 990, "weight": 3633, + "sigops": 9, "fee": 200744, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/mempool/f2acf1235882a7683bad5baeb1b84c2f1dbf33f0fc4a7c85f2191aa8d49ce0d3-response.json b/util/test/common-test/src/main/resources/mempool/f2acf1235882a7683bad5baeb1b84c2f1dbf33f0fc4a7c85f2191aa8d49ce0d3-response.json index a3bec7cbb..7643f2b14 100644 --- a/util/test/common-test/src/main/resources/mempool/f2acf1235882a7683bad5baeb1b84c2f1dbf33f0fc4a7c85f2191aa8d49ce0d3-response.json +++ b/util/test/common-test/src/main/resources/mempool/f2acf1235882a7683bad5baeb1b84c2f1dbf33f0fc4a7c85f2191aa8d49ce0d3-response.json @@ -65,6 +65,7 @@ ], "size": 355, "weight": 1018, + "sigops": 0, "fee": 2034, "status": { "confirmed": true, diff --git a/util/test/common-test/src/main/resources/tapd/admin-local.macaroon b/util/test/common-test/src/main/resources/tapd/admin-local.macaroon index 72042ee8a1073e7a29ffa71b06b80f25c717b363..fc35d5b8a04103e90f586b8fb0ada9e8210953ab 100644 GIT binary patch delta 70 zcmV-M0J;Cs0nq^+0s#bcVQ^#uqX7d75Rdy8gT%R$ Date: Fri, 15 Dec 2023 15:09:21 +0000 Subject: [PATCH 05/57] Bump JetBrains/qodana-action from 2023.2.9 to 2023.3.0 Bumps [JetBrains/qodana-action](https://github.com/jetbrains/qodana-action) from 2023.2.9 to 2023.3.0. - [Release notes](https://github.com/jetbrains/qodana-action/releases) - [Commits](https://github.com/jetbrains/qodana-action/compare/v2023.2.9...v2023.3.0) --- updated-dependencies: - dependency-name: JetBrains/qodana-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/on-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index d3611b3ee..eb4022cd6 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -157,7 +157,7 @@ jobs: # ================================================================================================================ # Using Qodana. - name: Qodana Scan - uses: JetBrains/qodana-action@v2023.2.9 + uses: JetBrains/qodana-action@v2023.3.0 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} From b2e710751151af0228a45fc049daaf25e5716895 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:09:23 +0000 Subject: [PATCH 06/57] Bump com.netflix.graphql.dgs.codegen:graphql-dgs-codegen-core Bumps [com.netflix.graphql.dgs.codegen:graphql-dgs-codegen-core](https://github.com/Netflix/dgs-codegen) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/Netflix/dgs-codegen/releases) - [Commits](https://github.com/Netflix/dgs-codegen/compare/v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: com.netflix.graphql.dgs.codegen:graphql-dgs-codegen-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf5cbb4e5..93a40be39 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ 1.1.13 8.2.0 - 6.1.0 + 6.1.1 5.1.17 4.25.0 From 745516eab4c35f815c16d10bdf25fc9ab725576d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 15:09:28 +0000 Subject: [PATCH 07/57] Bump io.projectreactor:reactor-core from 3.6.0 to 3.6.1 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.0 to 3.6.1. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.0...v3.6.1) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf5cbb4e5..e104ddac8 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ 3.1.5 - 3.6.0 + 3.6.1 1.1.13 8.2.0 From 57b587e85d298621d6a433c09c66a879dd3d025a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:50:09 +0000 Subject: [PATCH 08/57] Bump io.projectreactor.netty:reactor-netty from 1.1.13 to 1.1.14 Bumps [io.projectreactor.netty:reactor-netty](https://github.com/reactor/reactor-netty) from 1.1.13 to 1.1.14. - [Release notes](https://github.com/reactor/reactor-netty/releases) - [Commits](https://github.com/reactor/reactor-netty/compare/v1.1.13...v1.1.14) --- updated-dependencies: - dependency-name: io.projectreactor.netty:reactor-netty dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a84aaafa7..f2ef76ef8 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ 3.1.5 3.6.1 - 1.1.13 + 1.1.14 8.2.0 6.1.1 From d72b2000ed9e9c790435f111f1e43609482f1c2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:55:01 +0000 Subject: [PATCH 09/57] Bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/on-push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index eb4022cd6..86f30aab8 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -143,7 +143,7 @@ jobs: # ================================================================================================================ # Using CodeQL. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: java @@ -152,7 +152,7 @@ jobs: mvn package -DskipTests - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 # ================================================================================================================ # Using Qodana. From 2dc118411ccd585d97dd4ae055c3524aad571153 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:55:02 +0000 Subject: [PATCH 10/57] Bump io.github.wimdeblauwe:htmx-spring-boot-thymeleaf Bumps [io.github.wimdeblauwe:htmx-spring-boot-thymeleaf](https://github.com/wimdeblauwe/htmx-spring-boot-thymeleaf) from 3.1.1 to 3.2.0. - [Release notes](https://github.com/wimdeblauwe/htmx-spring-boot-thymeleaf/releases) - [Commits](https://github.com/wimdeblauwe/htmx-spring-boot-thymeleaf/compare/3.1.1...3.2.0) --- updated-dependencies: - dependency-name: io.github.wimdeblauwe:htmx-spring-boot-thymeleaf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a84aaafa7..a3fe7c85c 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ 3.1.8 3.3.0 - 3.1.1 + 3.2.0 0.50 1.9.9 3.13.3 From f5918482f441cf3e9739dbfed1edab52af692ccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 22:55:38 +0000 Subject: [PATCH 11/57] Bump daisyui from 4.4.19 to 4.4.20 in /backend/servers/explorer-web Bumps [daisyui](https://github.com/saadeghi/daisyui) from 4.4.19 to 4.4.20. - [Release notes](https://github.com/saadeghi/daisyui/releases) - [Changelog](https://github.com/saadeghi/daisyui/blob/master/CHANGELOG.md) - [Commits](https://github.com/saadeghi/daisyui/compare/v4.4.19...v4.4.20) --- updated-dependencies: - dependency-name: daisyui dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .../servers/explorer-web/package-lock.json | 14 +- backend/servers/explorer-web/package.json | 2 +- backend/servers/explorer-web/yarn.lock | 198 ++++++++---------- 3 files changed, 100 insertions(+), 114 deletions(-) diff --git a/backend/servers/explorer-web/package-lock.json b/backend/servers/explorer-web/package-lock.json index 696473310..9825b894e 100644 --- a/backend/servers/explorer-web/package-lock.json +++ b/backend/servers/explorer-web/package-lock.json @@ -13,7 +13,7 @@ "autoprefixer": "^10.4.16", "browser-sync": "^2.29.3", "cssnano": "^6.0.1", - "daisyui": "^4.4.19", + "daisyui": "^4.4.20", "mkdirp": "^3.0.1", "ncp": "^2.0.0", "npm-run-all": "^4.1.5", @@ -1060,9 +1060,9 @@ } }, "node_modules/daisyui": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.19.tgz", - "integrity": "sha512-IjOLWwnndD4N7Ut5CDxbUsaVtbqXPeVHM92IcgxGFxpuOd3CCKW/PAXZH6JoBTHFRaN57vB9XqEhdWm5yC+bPA==", + "version": "4.4.20", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.20.tgz", + "integrity": "sha512-AR2fuFVVLHVTdbkV+XWAqjtymEoxXksrsEMkdzPQo2wANtWjSXuODUzePNade64gJ0Y2CdQtiQkaZI7fWcp13g==", "dev": true, "dependencies": { "css-selector-tokenizer": "^0.8", @@ -5649,9 +5649,9 @@ "dev": true }, "daisyui": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.19.tgz", - "integrity": "sha512-IjOLWwnndD4N7Ut5CDxbUsaVtbqXPeVHM92IcgxGFxpuOd3CCKW/PAXZH6JoBTHFRaN57vB9XqEhdWm5yC+bPA==", + "version": "4.4.20", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-4.4.20.tgz", + "integrity": "sha512-AR2fuFVVLHVTdbkV+XWAqjtymEoxXksrsEMkdzPQo2wANtWjSXuODUzePNade64gJ0Y2CdQtiQkaZI7fWcp13g==", "dev": true, "requires": { "css-selector-tokenizer": "^0.8", diff --git a/backend/servers/explorer-web/package.json b/backend/servers/explorer-web/package.json index 5796a6976..ffe33d448 100644 --- a/backend/servers/explorer-web/package.json +++ b/backend/servers/explorer-web/package.json @@ -20,7 +20,7 @@ "autoprefixer": "^10.4.16", "browser-sync": "^2.29.3", "cssnano": "^6.0.1", - "daisyui": "^4.4.19", + "daisyui": "^4.4.20", "mkdirp": "^3.0.1", "ncp": "^2.0.0", "npm-run-all": "^4.1.5", diff --git a/backend/servers/explorer-web/yarn.lock b/backend/servers/explorer-web/yarn.lock index f01172321..460945c31 100644 --- a/backend/servers/explorer-web/yarn.lock +++ b/backend/servers/explorer-web/yarn.lock @@ -36,7 +36,7 @@ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@1.4.14": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -57,7 +57,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -139,14 +139,7 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -217,7 +210,7 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64id@~2.0.0, base64id@2.0.0: +base64id@2.0.0, base64id@~2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz" integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== @@ -309,7 +302,7 @@ browser-sync@^2.29.3: ua-parser-js "^1.0.33" yargs "^17.3.1" -browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.21.4, "browserslist@>= 4.21.0": +browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.21.4: version "4.21.10" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz" integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== @@ -357,6 +350,14 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001538: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz" integrity sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA== +chalk@4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^2.4.1: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -366,14 +367,6 @@ chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" @@ -421,16 +414,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colord@^2.9.1: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" @@ -614,31 +607,17 @@ culori@^3: resolved "https://registry.npmjs.org/culori/-/culori-3.2.0.tgz" integrity sha512-HIEbTSP7vs1mPq/2P9In6QyFE0Tkpevh0k9a+FkjhD+cwsYm9WRSbn4uMdW9O0yXlNYC3ppxL3gWWPOcvEl57w== -daisyui@^4.4.19: - version "4.4.19" - resolved "https://registry.npmjs.org/daisyui/-/daisyui-4.4.19.tgz" - integrity sha512-IjOLWwnndD4N7Ut5CDxbUsaVtbqXPeVHM92IcgxGFxpuOd3CCKW/PAXZH6JoBTHFRaN57vB9XqEhdWm5yC+bPA== +daisyui@^4.4.20: + version "4.4.20" + resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-4.4.20.tgz#3f010eb3d1fc7b4b5824524d27a07adea6e4578d" + integrity sha512-AR2fuFVVLHVTdbkV+XWAqjtymEoxXksrsEMkdzPQo2wANtWjSXuODUzePNade64gJ0Y2CdQtiQkaZI7fWcp13g== dependencies: css-selector-tokenizer "^0.8" culori "^3" picocolors "^1" postcss-js "^4" -debug@^2.2.0: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@~4.3.1, debug@~4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@2.6.9: +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -652,6 +631,13 @@ debug@4.3.2: dependencies: ms "2.1.2" +debug@~4.3.1, debug@~4.3.2: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" @@ -660,16 +646,16 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + dependency-graph@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz" @@ -875,7 +861,7 @@ escape-string-regexp@^1.0.5: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== -etag@^1.8.1, etag@~1.8.1, etag@1.8.1: +etag@1.8.1, etag@^1.8.1, etag@~1.8.1: version "1.8.1" resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== @@ -945,20 +931,11 @@ fraction.js@^4.3.6: resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz" integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== -fresh@^0.5.2, fresh@0.5.2: +fresh@0.5.2, fresh@^0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -fs-extra@^11.0.0: - version "11.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz" - integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz" @@ -968,11 +945,25 @@ fs-extra@3.0.1: jsonfile "^3.0.0" universalify "^0.1.0" +fs-extra@^11.0.0: + version "11.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -1128,16 +1119,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -1149,6 +1130,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" @@ -1355,7 +1346,7 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -jiti@^1.19.1, jiti@>=1.21.0: +jiti@^1.19.1: version "1.21.0" resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -2007,14 +1998,6 @@ postcss-reporter@^7.0.0: picocolors "^1.0.0" thenby "^1.3.4" -postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: - version "6.0.11" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" - integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - postcss-selector-parser@6.0.10: version "6.0.10" resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" @@ -2023,6 +2006,14 @@ postcss-selector-parser@6.0.10: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: + version "6.0.11" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-svgo@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz" @@ -2043,7 +2034,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.0.0, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.32, postcss@>=8.0.9: +postcss@^8.4.23, postcss@^8.4.32: version "8.4.32" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz" integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== @@ -2167,12 +2158,7 @@ safe-regex-test@^1.0.0: resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -"semver@2 || 3 || 4 || 5": +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -2345,6 +2331,11 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz" integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + "statuses@>= 1.4.0 < 2", statuses@~1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" @@ -2355,11 +2346,6 @@ statuses@~1.3.1: resolved "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" integrity sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - stream-throttle@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz" @@ -2468,7 +2454,7 @@ svgo@^3.0.2: csso "^5.0.5" picocolors "^1.0.0" -tailwindcss@^3.3.6, "tailwindcss@>=3.0.0 || >= 3.0.0-alpha.1", "tailwindcss@>=3.0.0 || insiders": +tailwindcss@^3.3.6: version "3.3.6" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.6.tgz" integrity sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw== @@ -2576,7 +2562,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -2693,19 +2679,6 @@ yargs-parser@^21.1.1: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.0.0, yargs@^17.3.1: - version "17.6.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - yargs@17.1.1: version "17.1.1" resolved "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz" @@ -2718,3 +2691,16 @@ yargs@17.1.1: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" + +yargs@^17.0.0, yargs@^17.3.1: + version "17.6.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" From 410f89225ed46ac02a59b135d6b8b68bf016b101 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Dec 2023 09:12:51 +0000 Subject: [PATCH 12/57] Bump cssnano from 6.0.1 to 6.0.2 in /backend/servers/explorer-web Bumps [cssnano](https://github.com/cssnano/cssnano) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/cssnano/cssnano/releases) - [Commits](https://github.com/cssnano/cssnano/compare/cssnano@6.0.1...cssnano@6.0.2) --- updated-dependencies: - dependency-name: cssnano dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .../servers/explorer-web/package-lock.json | 639 +++++++++--------- backend/servers/explorer-web/package.json | 2 +- backend/servers/explorer-web/yarn.lock | 349 +++++----- 3 files changed, 505 insertions(+), 485 deletions(-) diff --git a/backend/servers/explorer-web/package-lock.json b/backend/servers/explorer-web/package-lock.json index 9825b894e..1617a254a 100644 --- a/backend/servers/explorer-web/package-lock.json +++ b/backend/servers/explorer-web/package-lock.json @@ -12,7 +12,7 @@ "@tailwindcss/typography": "^0.5.10", "autoprefixer": "^10.4.16", "browser-sync": "^2.29.3", - "cssnano": "^6.0.1", + "cssnano": "^6.0.2", "daisyui": "^4.4.20", "mkdirp": "^3.0.1", "ncp": "^2.0.0", @@ -869,12 +869,12 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", - "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", + "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", "dev": true, "engines": { - "node": "^10 || ^12 || >=14" + "node": "^14 || ^16 || >=18" }, "peerDependencies": { "postcss": "^8.0.9" @@ -943,13 +943,13 @@ } }, "node_modules/cssnano": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", - "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.2.tgz", + "integrity": "sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==", "dev": true, "dependencies": { - "cssnano-preset-default": "^6.0.1", - "lilconfig": "^2.1.0" + "cssnano-preset-default": "^6.0.2", + "lilconfig": "^3.0.0" }, "engines": { "node": "^14 || ^16 || >=18.0" @@ -959,62 +959,71 @@ "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", - "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^4.0.0", - "postcss-calc": "^9.0.0", - "postcss-colormin": "^6.0.0", - "postcss-convert-values": "^6.0.0", - "postcss-discard-comments": "^6.0.0", - "postcss-discard-duplicates": "^6.0.0", - "postcss-discard-empty": "^6.0.0", - "postcss-discard-overridden": "^6.0.0", - "postcss-merge-longhand": "^6.0.0", - "postcss-merge-rules": "^6.0.1", - "postcss-minify-font-values": "^6.0.0", - "postcss-minify-gradients": "^6.0.0", - "postcss-minify-params": "^6.0.0", - "postcss-minify-selectors": "^6.0.0", - "postcss-normalize-charset": "^6.0.0", - "postcss-normalize-display-values": "^6.0.0", - "postcss-normalize-positions": "^6.0.0", - "postcss-normalize-repeat-style": "^6.0.0", - "postcss-normalize-string": "^6.0.0", - "postcss-normalize-timing-functions": "^6.0.0", - "postcss-normalize-unicode": "^6.0.0", - "postcss-normalize-url": "^6.0.0", - "postcss-normalize-whitespace": "^6.0.0", - "postcss-ordered-values": "^6.0.0", - "postcss-reduce-initial": "^6.0.0", - "postcss-reduce-transforms": "^6.0.0", - "postcss-svgo": "^6.0.0", - "postcss-unique-selectors": "^6.0.0" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz", + "integrity": "sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^7.0.0", + "cssnano-utils": "^4.0.1", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.0.1", + "postcss-convert-values": "^6.0.1", + "postcss-discard-comments": "^6.0.1", + "postcss-discard-duplicates": "^6.0.1", + "postcss-discard-empty": "^6.0.1", + "postcss-discard-overridden": "^6.0.1", + "postcss-merge-longhand": "^6.0.1", + "postcss-merge-rules": "^6.0.2", + "postcss-minify-font-values": "^6.0.1", + "postcss-minify-gradients": "^6.0.1", + "postcss-minify-params": "^6.0.1", + "postcss-minify-selectors": "^6.0.1", + "postcss-normalize-charset": "^6.0.1", + "postcss-normalize-display-values": "^6.0.1", + "postcss-normalize-positions": "^6.0.1", + "postcss-normalize-repeat-style": "^6.0.1", + "postcss-normalize-string": "^6.0.1", + "postcss-normalize-timing-functions": "^6.0.1", + "postcss-normalize-unicode": "^6.0.1", + "postcss-normalize-url": "^6.0.1", + "postcss-normalize-whitespace": "^6.0.1", + "postcss-ordered-values": "^6.0.1", + "postcss-reduce-initial": "^6.0.1", + "postcss-reduce-transforms": "^6.0.1", + "postcss-svgo": "^6.0.1", + "postcss-unique-selectors": "^6.0.1" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", - "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", + "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" + } + }, + "node_modules/cssnano/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" } }, "node_modules/csso": { @@ -2995,9 +3004,9 @@ } }, "node_modules/postcss-calc": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.0.tgz", - "integrity": "sha512-B9BNW/SVh4SMJfoCQ6D9h1Wo7Yjqks7UdbiARJ16J5TIsQn5NEqwMF5joSgOYb26oJPUR5Uv3fCQ/4PvmZWeJQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11", @@ -3119,9 +3128,9 @@ } }, "node_modules/postcss-colormin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", - "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.1.tgz", + "integrity": "sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3133,13 +3142,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", - "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz", + "integrity": "sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3149,55 +3158,55 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", - "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", + "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", - "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", + "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", - "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", + "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", - "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", + "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-import": { @@ -3263,43 +3272,43 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", - "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz", + "integrity": "sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.0" + "stylehacks": "^6.0.1" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", - "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz", + "integrity": "sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==", "dev": true, "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-selector-parser": "^6.0.5" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", - "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", + "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3308,47 +3317,47 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", - "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", + "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", - "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz", + "integrity": "sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==", "dev": true, "dependencies": { "browserslist": "^4.21.4", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", - "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz", + "integrity": "sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" @@ -3357,7 +3366,7 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-nested": { @@ -3379,21 +3388,21 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", - "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", + "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", "dev": true, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", - "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", + "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3402,13 +3411,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", - "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", + "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3417,13 +3426,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", - "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", + "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3432,13 +3441,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", - "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", + "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3447,13 +3456,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", - "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", + "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3462,13 +3471,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", - "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz", + "integrity": "sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3478,13 +3487,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", - "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", + "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3493,13 +3502,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", - "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", + "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3508,29 +3517,29 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", - "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", + "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", "dev": true, "dependencies": { - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", - "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz", + "integrity": "sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3540,13 +3549,13 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", - "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", + "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -3555,7 +3564,7 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reporter": { @@ -3591,25 +3600,25 @@ } }, "node_modules/postcss-svgo": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", - "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.1.tgz", + "integrity": "sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^3.0.2" + "svgo": "^3.0.5" }, "engines": { "node": "^14 || ^16 || >= 18" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", - "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz", + "integrity": "sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" @@ -3618,7 +3627,7 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-value-parser": { @@ -4324,9 +4333,9 @@ } }, "node_modules/stylehacks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", - "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.1.tgz", + "integrity": "sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -4336,7 +4345,7 @@ "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/sucrase": { @@ -4416,16 +4425,17 @@ } }, "node_modules/svgo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", - "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.1.0.tgz", + "integrity": "sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==", "dev": true, "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.2.1", - "csso": "^5.0.5", + "css-what": "^6.1.0", + "csso": "5.0.5", "picocolors": "^1.0.0" }, "bin": { @@ -5511,9 +5521,9 @@ } }, "css-declaration-sorter": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz", - "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz", + "integrity": "sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==", "dev": true, "requires": {} }, @@ -5562,56 +5572,64 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz", - "integrity": "sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.0.2.tgz", + "integrity": "sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==", "dev": true, "requires": { - "cssnano-preset-default": "^6.0.1", - "lilconfig": "^2.1.0" + "cssnano-preset-default": "^6.0.2", + "lilconfig": "^3.0.0" + }, + "dependencies": { + "lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true + } } }, "cssnano-preset-default": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz", - "integrity": "sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^4.0.0", - "postcss-calc": "^9.0.0", - "postcss-colormin": "^6.0.0", - "postcss-convert-values": "^6.0.0", - "postcss-discard-comments": "^6.0.0", - "postcss-discard-duplicates": "^6.0.0", - "postcss-discard-empty": "^6.0.0", - "postcss-discard-overridden": "^6.0.0", - "postcss-merge-longhand": "^6.0.0", - "postcss-merge-rules": "^6.0.1", - "postcss-minify-font-values": "^6.0.0", - "postcss-minify-gradients": "^6.0.0", - "postcss-minify-params": "^6.0.0", - "postcss-minify-selectors": "^6.0.0", - "postcss-normalize-charset": "^6.0.0", - "postcss-normalize-display-values": "^6.0.0", - "postcss-normalize-positions": "^6.0.0", - "postcss-normalize-repeat-style": "^6.0.0", - "postcss-normalize-string": "^6.0.0", - "postcss-normalize-timing-functions": "^6.0.0", - "postcss-normalize-unicode": "^6.0.0", - "postcss-normalize-url": "^6.0.0", - "postcss-normalize-whitespace": "^6.0.0", - "postcss-ordered-values": "^6.0.0", - "postcss-reduce-initial": "^6.0.0", - "postcss-reduce-transforms": "^6.0.0", - "postcss-svgo": "^6.0.0", - "postcss-unique-selectors": "^6.0.0" + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz", + "integrity": "sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==", + "dev": true, + "requires": { + "css-declaration-sorter": "^7.0.0", + "cssnano-utils": "^4.0.1", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.0.1", + "postcss-convert-values": "^6.0.1", + "postcss-discard-comments": "^6.0.1", + "postcss-discard-duplicates": "^6.0.1", + "postcss-discard-empty": "^6.0.1", + "postcss-discard-overridden": "^6.0.1", + "postcss-merge-longhand": "^6.0.1", + "postcss-merge-rules": "^6.0.2", + "postcss-minify-font-values": "^6.0.1", + "postcss-minify-gradients": "^6.0.1", + "postcss-minify-params": "^6.0.1", + "postcss-minify-selectors": "^6.0.1", + "postcss-normalize-charset": "^6.0.1", + "postcss-normalize-display-values": "^6.0.1", + "postcss-normalize-positions": "^6.0.1", + "postcss-normalize-repeat-style": "^6.0.1", + "postcss-normalize-string": "^6.0.1", + "postcss-normalize-timing-functions": "^6.0.1", + "postcss-normalize-unicode": "^6.0.1", + "postcss-normalize-url": "^6.0.1", + "postcss-normalize-whitespace": "^6.0.1", + "postcss-ordered-values": "^6.0.1", + "postcss-reduce-initial": "^6.0.1", + "postcss-reduce-transforms": "^6.0.1", + "postcss-svgo": "^6.0.1", + "postcss-unique-selectors": "^6.0.1" } }, "cssnano-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz", - "integrity": "sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.1.tgz", + "integrity": "sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==", "dev": true, "requires": {} }, @@ -7056,9 +7074,9 @@ } }, "postcss-calc": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.0.tgz", - "integrity": "sha512-B9BNW/SVh4SMJfoCQ6D9h1Wo7Yjqks7UdbiARJ16J5TIsQn5NEqwMF5joSgOYb26oJPUR5Uv3fCQ/4PvmZWeJQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.11", @@ -7131,9 +7149,9 @@ } }, "postcss-colormin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz", - "integrity": "sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.1.tgz", + "integrity": "sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -7143,9 +7161,9 @@ } }, "postcss-convert-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz", - "integrity": "sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz", + "integrity": "sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -7153,30 +7171,30 @@ } }, "postcss-discard-comments": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz", - "integrity": "sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz", + "integrity": "sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz", - "integrity": "sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz", + "integrity": "sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz", - "integrity": "sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz", + "integrity": "sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz", - "integrity": "sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz", + "integrity": "sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==", "dev": true, "requires": {} }, @@ -7208,62 +7226,62 @@ } }, "postcss-merge-longhand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz", - "integrity": "sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz", + "integrity": "sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.0.0" + "stylehacks": "^6.0.1" } }, "postcss-merge-rules": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz", - "integrity": "sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz", + "integrity": "sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==", "dev": true, "requires": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz", - "integrity": "sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz", + "integrity": "sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz", - "integrity": "sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz", + "integrity": "sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==", "dev": true, "requires": { "colord": "^2.9.1", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz", - "integrity": "sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz", + "integrity": "sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==", "dev": true, "requires": { "browserslist": "^4.21.4", - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz", - "integrity": "sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz", + "integrity": "sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -7278,61 +7296,61 @@ } }, "postcss-normalize-charset": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz", - "integrity": "sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz", + "integrity": "sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz", - "integrity": "sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz", + "integrity": "sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz", - "integrity": "sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz", + "integrity": "sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz", - "integrity": "sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz", + "integrity": "sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz", - "integrity": "sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz", + "integrity": "sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz", - "integrity": "sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz", + "integrity": "sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz", - "integrity": "sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz", + "integrity": "sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -7340,37 +7358,37 @@ } }, "postcss-normalize-url": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz", - "integrity": "sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz", + "integrity": "sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-whitespace": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz", - "integrity": "sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz", + "integrity": "sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz", - "integrity": "sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz", + "integrity": "sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==", "dev": true, "requires": { - "cssnano-utils": "^4.0.0", + "cssnano-utils": "^4.0.1", "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-initial": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz", - "integrity": "sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz", + "integrity": "sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -7378,9 +7396,9 @@ } }, "postcss-reduce-transforms": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz", - "integrity": "sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz", + "integrity": "sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -7406,19 +7424,19 @@ } }, "postcss-svgo": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz", - "integrity": "sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.1.tgz", + "integrity": "sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "svgo": "^3.0.2" + "svgo": "^3.0.5" } }, "postcss-unique-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz", - "integrity": "sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz", + "integrity": "sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -7975,9 +7993,9 @@ "dev": true }, "stylehacks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz", - "integrity": "sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.1.tgz", + "integrity": "sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==", "dev": true, "requires": { "browserslist": "^4.21.4", @@ -8038,16 +8056,17 @@ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" }, "svgo": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz", - "integrity": "sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.1.0.tgz", + "integrity": "sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==", "dev": true, "requires": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.2.1", - "csso": "^5.0.5", + "css-what": "^6.1.0", + "csso": "5.0.5", "picocolors": "^1.0.0" }, "dependencies": { diff --git a/backend/servers/explorer-web/package.json b/backend/servers/explorer-web/package.json index ffe33d448..bb5f35c7c 100644 --- a/backend/servers/explorer-web/package.json +++ b/backend/servers/explorer-web/package.json @@ -19,7 +19,7 @@ "@tailwindcss/typography": "^0.5.10", "autoprefixer": "^10.4.16", "browser-sync": "^2.29.3", - "cssnano": "^6.0.1", + "cssnano": "^6.0.2", "daisyui": "^4.4.20", "mkdirp": "^3.0.1", "ncp": "^2.0.0", diff --git a/backend/servers/explorer-web/yarn.lock b/backend/servers/explorer-web/yarn.lock index 460945c31..efddc406e 100644 --- a/backend/servers/explorer-web/yarn.lock +++ b/backend/servers/explorer-web/yarn.lock @@ -497,10 +497,10 @@ cross-spawn@^7.0.1: shebang-command "^2.0.0" which "^2.0.1" -css-declaration-sorter@^6.3.1: - version "6.4.0" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz" - integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== +css-declaration-sorter@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz#9796bcc257b4647c39993bda8d431ce32b666f80" + integrity sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ== css-select@^5.1.0: version "5.1.0" @@ -547,57 +547,57 @@ cssesc@^3.0.0: resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.0.1.tgz" - integrity sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ== - dependencies: - css-declaration-sorter "^6.3.1" - cssnano-utils "^4.0.0" - postcss-calc "^9.0.0" - postcss-colormin "^6.0.0" - postcss-convert-values "^6.0.0" - postcss-discard-comments "^6.0.0" - postcss-discard-duplicates "^6.0.0" - postcss-discard-empty "^6.0.0" - postcss-discard-overridden "^6.0.0" - postcss-merge-longhand "^6.0.0" - postcss-merge-rules "^6.0.1" - postcss-minify-font-values "^6.0.0" - postcss-minify-gradients "^6.0.0" - postcss-minify-params "^6.0.0" - postcss-minify-selectors "^6.0.0" - postcss-normalize-charset "^6.0.0" - postcss-normalize-display-values "^6.0.0" - postcss-normalize-positions "^6.0.0" - postcss-normalize-repeat-style "^6.0.0" - postcss-normalize-string "^6.0.0" - postcss-normalize-timing-functions "^6.0.0" - postcss-normalize-unicode "^6.0.0" - postcss-normalize-url "^6.0.0" - postcss-normalize-whitespace "^6.0.0" - postcss-ordered-values "^6.0.0" - postcss-reduce-initial "^6.0.0" - postcss-reduce-transforms "^6.0.0" - postcss-svgo "^6.0.0" - postcss-unique-selectors "^6.0.0" - -cssnano-utils@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.0.tgz" - integrity sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw== +cssnano-preset-default@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz#0cc13e2da462b0d1632b1ebea4af78e7484592e8" + integrity sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw== + dependencies: + css-declaration-sorter "^7.0.0" + cssnano-utils "^4.0.1" + postcss-calc "^9.0.1" + postcss-colormin "^6.0.1" + postcss-convert-values "^6.0.1" + postcss-discard-comments "^6.0.1" + postcss-discard-duplicates "^6.0.1" + postcss-discard-empty "^6.0.1" + postcss-discard-overridden "^6.0.1" + postcss-merge-longhand "^6.0.1" + postcss-merge-rules "^6.0.2" + postcss-minify-font-values "^6.0.1" + postcss-minify-gradients "^6.0.1" + postcss-minify-params "^6.0.1" + postcss-minify-selectors "^6.0.1" + postcss-normalize-charset "^6.0.1" + postcss-normalize-display-values "^6.0.1" + postcss-normalize-positions "^6.0.1" + postcss-normalize-repeat-style "^6.0.1" + postcss-normalize-string "^6.0.1" + postcss-normalize-timing-functions "^6.0.1" + postcss-normalize-unicode "^6.0.1" + postcss-normalize-url "^6.0.1" + postcss-normalize-whitespace "^6.0.1" + postcss-ordered-values "^6.0.1" + postcss-reduce-initial "^6.0.1" + postcss-reduce-transforms "^6.0.1" + postcss-svgo "^6.0.1" + postcss-unique-selectors "^6.0.1" + +cssnano-utils@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.1.tgz#fd18b42f95938bf55ab47967705355d6047bf1da" + integrity sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ== -cssnano@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-6.0.1.tgz" - integrity sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg== +cssnano@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.0.2.tgz#7b49d60ce51e1dea3d569795f751ee49e97124c9" + integrity sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA== dependencies: - cssnano-preset-default "^6.0.1" - lilconfig "^2.1.0" + cssnano-preset-default "^6.0.2" + lilconfig "^3.0.0" -csso@^5.0.5: +csso@5.0.5: version "5.0.5" - resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: css-tree "~2.2.0" @@ -1752,10 +1752,10 @@ portscanner@2.2.0: async "^2.6.0" is-number-like "^1.0.3" -postcss-calc@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.0.tgz" - integrity sha512-B9BNW/SVh4SMJfoCQ6D9h1Wo7Yjqks7UdbiARJ16J5TIsQn5NEqwMF5joSgOYb26oJPUR5Uv3fCQ/4PvmZWeJQ== +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== dependencies: postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" @@ -1778,43 +1778,43 @@ postcss-cli@^11.0.0: slash "^5.0.0" yargs "^17.0.0" -postcss-colormin@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.0.0.tgz" - integrity sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw== +postcss-colormin@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.0.1.tgz#3aa61d38a88dbdeeb7252fae67809a7ac547a129" + integrity sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" colord "^2.9.1" postcss-value-parser "^4.2.0" -postcss-convert-values@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.0.0.tgz" - integrity sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw== +postcss-convert-values@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz#a1451cb7e53b67b3db95c37276c5decb997409f2" + integrity sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA== dependencies: browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-discard-comments@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.0.tgz" - integrity sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw== +postcss-discard-comments@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz#46176212bd9c3e5f48aa4b8b4868786726c41d36" + integrity sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg== -postcss-discard-duplicates@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.0.tgz" - integrity sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA== +postcss-discard-duplicates@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz#112b1a95948e69b3484fdd43584dda6930977939" + integrity sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg== -postcss-discard-empty@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.0.tgz" - integrity sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ== +postcss-discard-empty@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz#b34cb45ec891246da4506b53e352390fdef126c4" + integrity sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg== -postcss-discard-overridden@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.0.tgz" - integrity sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw== +postcss-discard-overridden@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz#c63c559237758d74bc505452393a64dda9b19ef4" + integrity sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA== postcss-import@^15.1.0: version "15.1.0" @@ -1848,53 +1848,53 @@ postcss-load-config@^5.0.0: lilconfig "^3.0.0" yaml "^2.3.4" -postcss-merge-longhand@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz" - integrity sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg== +postcss-merge-longhand@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz#5a1145868c615e643ca0996d9e9c3f09ad8de854" + integrity sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA== dependencies: postcss-value-parser "^4.2.0" - stylehacks "^6.0.0" + stylehacks "^6.0.1" -postcss-merge-rules@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.0.1.tgz" - integrity sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw== +postcss-merge-rules@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz#b0f0063a05d671b7093a86f0faa6d2c6695dc036" + integrity sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" - cssnano-utils "^4.0.0" + cssnano-utils "^4.0.1" postcss-selector-parser "^6.0.5" -postcss-minify-font-values@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.0.0.tgz" - integrity sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA== +postcss-minify-font-values@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz#788eb930168be90225f3937f0b70aa19d8b532b2" + integrity sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w== dependencies: postcss-value-parser "^4.2.0" -postcss-minify-gradients@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.0.tgz" - integrity sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA== +postcss-minify-gradients@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz#4faf1880b483dc37016658aa186b42194ff9b5bc" + integrity sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w== dependencies: colord "^2.9.1" - cssnano-utils "^4.0.0" + cssnano-utils "^4.0.1" postcss-value-parser "^4.2.0" -postcss-minify-params@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.0.0.tgz" - integrity sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ== +postcss-minify-params@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz#79b83947bae2aa991df12646c7f463276abb0aef" + integrity sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g== dependencies: browserslist "^4.21.4" - cssnano-utils "^4.0.0" + cssnano-utils "^4.0.1" postcss-value-parser "^4.2.0" -postcss-minify-selectors@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.0.tgz" - integrity sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g== +postcss-minify-selectors@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz#7b2f05651a2f734da1fa50dea62cfc47e67d68f9" + integrity sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ== dependencies: postcss-selector-parser "^6.0.5" @@ -1905,88 +1905,88 @@ postcss-nested@^6.0.1: dependencies: postcss-selector-parser "^6.0.11" -postcss-normalize-charset@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.0.tgz" - integrity sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ== +postcss-normalize-charset@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz#5f70e1eb8bbdbcfcbed060ef70f179e8fef57d0c" + integrity sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg== -postcss-normalize-display-values@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.0.tgz" - integrity sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw== +postcss-normalize-display-values@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz#ff9aa30bbf1283294bfd9cc8b6fb81ff060a7f2d" + integrity sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-positions@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.0.tgz" - integrity sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg== +postcss-normalize-positions@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz#41ffdc72994f024c6cd6e91dbfb40ab9abe6fe90" + integrity sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-repeat-style@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.0.tgz" - integrity sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A== +postcss-normalize-repeat-style@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz#55dc54b6f80305b280a379899a6626e0a07b04a8" + integrity sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-string@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.0.tgz" - integrity sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w== +postcss-normalize-string@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz#7605e0fb4ec7bf2709709991d13a949e4419db1d" + integrity sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-timing-functions@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.0.tgz" - integrity sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg== +postcss-normalize-timing-functions@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz#ef937b7ca2fd62ed0b46645ea5728b842a3600db" + integrity sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-unicode@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.0.tgz" - integrity sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg== +postcss-normalize-unicode@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz#a652faa02fc8ce5d1429ac0782575d8d66a60d9b" + integrity sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ== dependencies: browserslist "^4.21.4" postcss-value-parser "^4.2.0" -postcss-normalize-url@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.0.tgz" - integrity sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw== +postcss-normalize-url@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz#eae58cb4f5f9a4fa5bbbf6d4222dff534ad46186" + integrity sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ== dependencies: postcss-value-parser "^4.2.0" -postcss-normalize-whitespace@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.0.tgz" - integrity sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw== +postcss-normalize-whitespace@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz#b5933750b938814c028d3d2b2e5c0199e0037b53" + integrity sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA== dependencies: postcss-value-parser "^4.2.0" -postcss-ordered-values@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.0.tgz" - integrity sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg== +postcss-ordered-values@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz#553e735d009065b362da93340e57f43d5f2d0fbc" + integrity sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA== dependencies: - cssnano-utils "^4.0.0" + cssnano-utils "^4.0.1" postcss-value-parser "^4.2.0" -postcss-reduce-initial@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.0.0.tgz" - integrity sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA== +postcss-reduce-initial@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz#37621ba31a18fd75eb9c76e818cca2a2adb13238" + integrity sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA== dependencies: browserslist "^4.21.4" caniuse-api "^3.0.0" -postcss-reduce-transforms@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.0.tgz" - integrity sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w== +postcss-reduce-transforms@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz#7bf59d7c6e7066e3b18ef17237d2344bd3da6d75" + integrity sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ== dependencies: postcss-value-parser "^4.2.0" @@ -2014,18 +2014,18 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.4, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.0.tgz" - integrity sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw== +postcss-svgo@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.1.tgz#6bf63713ef5cb40f1bedd2c2cfca2486b41d5184" + integrity sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA== dependencies: postcss-value-parser "^4.2.0" - svgo "^3.0.2" + svgo "^3.0.5" -postcss-unique-selectors@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.0.tgz" - integrity sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw== +postcss-unique-selectors@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz#e6d071c2ea64ce265eb55ea9c170ff951183c712" + integrity sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ== dependencies: postcss-selector-parser "^6.0.5" @@ -2402,10 +2402,10 @@ strip-bom@^3.0.0: resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -stylehacks@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-6.0.0.tgz" - integrity sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw== +stylehacks@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.0.1.tgz#c103f0149e268a290a0dda3fce8fd4c5459a13c3" + integrity sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg== dependencies: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" @@ -2442,16 +2442,17 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -svgo@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-3.0.2.tgz" - integrity sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ== +svgo@^3.0.5: + version "3.1.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.1.0.tgz#7e63855c8da73297d5d5765e968f9679a0f8d24a" + integrity sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA== dependencies: "@trysound/sax" "0.2.0" commander "^7.2.0" css-select "^5.1.0" css-tree "^2.2.1" - csso "^5.0.5" + css-what "^6.1.0" + csso "5.0.5" picocolors "^1.0.0" tailwindcss@^3.3.6: From 85042a7651422dcda175d07bc5bf081335a7c790 Mon Sep 17 00:00:00 2001 From: straumat Date: Sun, 17 Dec 2023 12:57:03 +0100 Subject: [PATCH 13/57] Container image build with Jlink --- backend/servers/explorer-api/pom.xml | 3 +++ backend/servers/explorer-batch/pom.xml | 3 +++ backend/servers/explorer-web/pom.xml | 3 +++ 3 files changed, 9 insertions(+) diff --git a/backend/servers/explorer-api/pom.xml b/backend/servers/explorer-api/pom.xml index 8638fd916..e10873d21 100644 --- a/backend/servers/explorer-api/pom.xml +++ b/backend/servers/explorer-api/pom.xml @@ -138,6 +138,9 @@ royllo/explorer-api:latest + + true + org.royllo.explorer.api.Application diff --git a/backend/servers/explorer-batch/pom.xml b/backend/servers/explorer-batch/pom.xml index 909340358..8adaf2d77 100644 --- a/backend/servers/explorer-batch/pom.xml +++ b/backend/servers/explorer-batch/pom.xml @@ -110,6 +110,9 @@ royllo/explorer-batch:latest + + true + org.royllo.explorer.batch.Application diff --git a/backend/servers/explorer-web/pom.xml b/backend/servers/explorer-web/pom.xml index 5e3ee8800..da5a6d280 100644 --- a/backend/servers/explorer-web/pom.xml +++ b/backend/servers/explorer-web/pom.xml @@ -130,6 +130,9 @@ royllo/explorer-web:latest + + true + org.royllo.explorer.web.Application From 54956650b9eb7a4af050ab27063a280e21b91c4f Mon Sep 17 00:00:00 2001 From: straumat Date: Sun, 17 Dec 2023 16:53:46 +0100 Subject: [PATCH 14/57] getGlobalStatistics method with cache --- backend/explorer-core/autoconfigure/pom.xml | 9 +++ .../configuration/CachingConfiguration.java | 13 ++++ .../dto/statistics/GlobalStatisticsDTO.java | 25 +++++++ .../core/dto/statistics/package-info.java | 4 ++ .../service/statistics/StatisticService.java | 17 +++++ .../StatisticServiceImplementation.java | 47 +++++++++++++ .../core/service/statistics/package-info.java | 4 ++ .../src/main/resources/application.properties | 4 ++ .../core/service/StatisticServiceTest.java | 68 +++++++++++++++++++ .../src/test/resources/application.properties | 4 ++ backend/servers/explorer-api/pom.xml | 7 +- .../src/main/resources/application.properties | 4 ++ backend/servers/explorer-batch/pom.xml | 2 + .../src/main/resources/application.properties | 4 ++ backend/servers/explorer-web/pom.xml | 7 +- .../src/main/resources/application.properties | 4 ++ .../src/test/resources/application.properties | 4 ++ 17 files changed, 217 insertions(+), 10 deletions(-) create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/configuration/CachingConfiguration.java create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/GlobalStatisticsDTO.java create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/package-info.java create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticService.java create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticServiceImplementation.java create mode 100644 backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/package-info.java create mode 100644 backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/StatisticServiceTest.java diff --git a/backend/explorer-core/autoconfigure/pom.xml b/backend/explorer-core/autoconfigure/pom.xml index 431ec119c..51c80fc6a 100644 --- a/backend/explorer-core/autoconfigure/pom.xml +++ b/backend/explorer-core/autoconfigure/pom.xml @@ -24,6 +24,15 @@ org.springframework.boot spring-boot-starter-webflux + + org.springframework.boot + spring-boot-starter-cache + + + com.github.ben-manes.caffeine + caffeine + ${caffeine.version} + diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/configuration/CachingConfiguration.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/configuration/CachingConfiguration.java new file mode 100644 index 000000000..a9566d7a2 --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/configuration/CachingConfiguration.java @@ -0,0 +1,13 @@ +package org.royllo.explorer.core.configuration; + +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Configuration; + +/** + * Caching configuration. + */ +@Configuration +@EnableCaching +public class CachingConfiguration { + +} diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/GlobalStatisticsDTO.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/GlobalStatisticsDTO.java new file mode 100644 index 000000000..b447c478a --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/GlobalStatisticsDTO.java @@ -0,0 +1,25 @@ +package org.royllo.explorer.core.dto.statistics; + +import lombok.Getter; +import lombok.ToString; +import lombok.experimental.SuperBuilder; + +/** + * Global statistics DTO. + */ +@Getter +@SuperBuilder +@ToString(callSuper = true) +@SuppressWarnings("checkstyle:VisibilityModifier") +public class GlobalStatisticsDTO { + + /** Total number of universes. */ + long universeCount; + + /** Total number of assets. */ + long assetCount; + + /** Total number of asset states. */ + long assetStateCount; + +} diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/package-info.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/package-info.java new file mode 100644 index 000000000..244ea64c4 --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/dto/statistics/package-info.java @@ -0,0 +1,4 @@ +/** + * This package contains the DTOs for the statistics. + */ +package org.royllo.explorer.core.dto.statistics; \ No newline at end of file diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticService.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticService.java new file mode 100644 index 000000000..4c02024e7 --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticService.java @@ -0,0 +1,17 @@ +package org.royllo.explorer.core.service.statistics; + +import org.royllo.explorer.core.dto.statistics.GlobalStatisticsDTO; + +/** + * Statistic service. + */ +public interface StatisticService { + + /** + * Returns the global statistics. + * + * @return the global statistics + */ + GlobalStatisticsDTO getGlobalStatistics(); + +} diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticServiceImplementation.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticServiceImplementation.java new file mode 100644 index 000000000..724ec830b --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/StatisticServiceImplementation.java @@ -0,0 +1,47 @@ +package org.royllo.explorer.core.service.statistics; + +import lombok.RequiredArgsConstructor; +import org.royllo.explorer.core.dto.statistics.GlobalStatisticsDTO; +import org.royllo.explorer.core.repository.asset.AssetRepository; +import org.royllo.explorer.core.repository.asset.AssetStateRepository; +import org.royllo.explorer.core.repository.universe.UniverseServerRepository; +import org.royllo.explorer.core.util.base.BaseService; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; + +/** + * {@link StatisticService} implementation. + */ +@Service +@RequiredArgsConstructor +@SuppressWarnings({"checkstyle:DesignForExtension", "unused"}) +public class StatisticServiceImplementation extends BaseService implements StatisticService { + + /** Universe server repository. */ + private final UniverseServerRepository universeServerRepository; + + /** Asset repository. */ + private final AssetRepository assetRepository; + + /** Asset state repository. */ + private final AssetStateRepository assetStateRepository; + + @Override + @Cacheable("globalStatistics") + public GlobalStatisticsDTO getGlobalStatistics() { + return GlobalStatisticsDTO.builder() + .universeCount(universeServerRepository.count()) + .assetCount(assetRepository.count()) + .assetStateCount(assetStateRepository.count()) + .build(); + } + + @Scheduled(fixedDelayString = "PT1H") + @CacheEvict(value = "globalStatistics", allEntries = true) + public void evictStatisticsCache() { + logger.info("Clearing global statistics cache."); + } + +} diff --git a/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/package-info.java b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/package-info.java new file mode 100644 index 000000000..ad6ce0f89 --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/main/java/org/royllo/explorer/core/service/statistics/package-info.java @@ -0,0 +1,4 @@ +/** + * This package contains the service classes for the statistics module. + */ +package org.royllo.explorer.core.service.statistics; \ No newline at end of file diff --git a/backend/explorer-core/autoconfigure/src/main/resources/application.properties b/backend/explorer-core/autoconfigure/src/main/resources/application.properties index 840ca75cc..9089578f7 100644 --- a/backend/explorer-core/autoconfigure/src/main/resources/application.properties +++ b/backend/explorer-core/autoconfigure/src/main/resources/application.properties @@ -15,6 +15,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration (testnet). mempool.api.base-url=https://mempool.space/testnet/api # diff --git a/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/StatisticServiceTest.java b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/StatisticServiceTest.java new file mode 100644 index 000000000..9ceaa11a5 --- /dev/null +++ b/backend/explorer-core/autoconfigure/src/test/java/org/royllo/explorer/core/test/core/service/StatisticServiceTest.java @@ -0,0 +1,68 @@ +package org.royllo.explorer.core.test.core.service; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.royllo.explorer.core.dto.statistics.GlobalStatisticsDTO; +import org.royllo.explorer.core.repository.asset.AssetRepository; +import org.royllo.explorer.core.repository.asset.AssetStateRepository; +import org.royllo.explorer.core.repository.universe.UniverseServerRepository; +import org.royllo.explorer.core.service.statistics.StatisticServiceImplementation; +import org.royllo.explorer.core.service.universe.UniverseServerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@SpringBootTest +@DisplayName("StatisticService tests") +public class StatisticServiceTest { + + @Autowired + UniverseServerRepository universeServerRepository; + + @Autowired + AssetRepository assetRepository; + + @Autowired + AssetStateRepository assetStateRepository; + + @Autowired + UniverseServerService universeServerService; + + @Autowired + StatisticServiceImplementation statisticService; + + @Test + @DisplayName("getGlobalStatistics()") + public void getGlobalStatistics() { + // Initial values of statistics. + long initialUniverseCount = universeServerRepository.count(); + long initialAssetCount = assetRepository.count(); + long initialAssetStateCount = assetStateRepository.count(); + + // We get the statistics from the database. + GlobalStatisticsDTO globalStatistics = statisticService.getGlobalStatistics(); + assertEquals(initialUniverseCount, globalStatistics.getUniverseCount()); + assertEquals(initialAssetCount, globalStatistics.getAssetCount()); + assertEquals(initialAssetStateCount, globalStatistics.getAssetStateCount()); + + // We add a new universe server. + universeServerService.addUniverseServer("1.1.1.1"); + + // We added a universe server => the statistics should not be updated as we have cache. + globalStatistics = statisticService.getGlobalStatistics(); + assertEquals(initialUniverseCount, globalStatistics.getUniverseCount()); + assertEquals(initialAssetCount, globalStatistics.getAssetCount()); + assertEquals(initialAssetStateCount, globalStatistics.getAssetStateCount()); + + // We clear the cache. + statisticService.evictStatisticsCache(); + + // We should now see the universe server we added. + globalStatistics = statisticService.getGlobalStatistics(); + assertEquals(initialUniverseCount + 1, globalStatistics.getUniverseCount()); + assertEquals(initialAssetCount, globalStatistics.getAssetCount()); + assertEquals(initialAssetStateCount, globalStatistics.getAssetStateCount()); + } + +} diff --git a/backend/explorer-core/autoconfigure/src/test/resources/application.properties b/backend/explorer-core/autoconfigure/src/test/resources/application.properties index 0f823b920..d9a9a82b9 100644 --- a/backend/explorer-core/autoconfigure/src/test/resources/application.properties +++ b/backend/explorer-core/autoconfigure/src/test/resources/application.properties @@ -10,6 +10,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration - Using our mock server. mempool.api.base-url=http://localhost:9091/testnet/api # diff --git a/backend/servers/explorer-api/pom.xml b/backend/servers/explorer-api/pom.xml index e10873d21..72ce793b8 100644 --- a/backend/servers/explorer-api/pom.xml +++ b/backend/servers/explorer-api/pom.xml @@ -44,11 +44,6 @@ bucket4j-core ${bucket4j-core.version} - - com.github.ben-manes.caffeine - caffeine - ${caffeine.version} - @@ -138,9 +133,11 @@ royllo/explorer-api:latest + org.royllo.explorer.api.Application diff --git a/backend/servers/explorer-api/src/main/resources/application.properties b/backend/servers/explorer-api/src/main/resources/application.properties index 0d482bd95..5b52e49c1 100644 --- a/backend/servers/explorer-api/src/main/resources/application.properties +++ b/backend/servers/explorer-api/src/main/resources/application.properties @@ -10,6 +10,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration (testnet). mempool.api.base-url=https://mempool.space/testnet/api # diff --git a/backend/servers/explorer-batch/pom.xml b/backend/servers/explorer-batch/pom.xml index 8adaf2d77..61b320d18 100644 --- a/backend/servers/explorer-batch/pom.xml +++ b/backend/servers/explorer-batch/pom.xml @@ -110,9 +110,11 @@ royllo/explorer-batch:latest + org.royllo.explorer.batch.Application diff --git a/backend/servers/explorer-batch/src/main/resources/application.properties b/backend/servers/explorer-batch/src/main/resources/application.properties index 1d85518b0..ac5a3dd7d 100644 --- a/backend/servers/explorer-batch/src/main/resources/application.properties +++ b/backend/servers/explorer-batch/src/main/resources/application.properties @@ -10,6 +10,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration (testnet). mempool.api.base-url=https://mempool.space/testnet/api # diff --git a/backend/servers/explorer-web/pom.xml b/backend/servers/explorer-web/pom.xml index da5a6d280..4b43d544a 100644 --- a/backend/servers/explorer-web/pom.xml +++ b/backend/servers/explorer-web/pom.xml @@ -53,11 +53,6 @@ bucket4j-core ${bucket4j-core.version} - - com.github.ben-manes.caffeine - caffeine - ${caffeine.version} - @@ -130,9 +125,11 @@ royllo/explorer-web:latest + org.royllo.explorer.web.Application diff --git a/backend/servers/explorer-web/src/main/resources/application.properties b/backend/servers/explorer-web/src/main/resources/application.properties index e89ef3e75..56a62b70e 100644 --- a/backend/servers/explorer-web/src/main/resources/application.properties +++ b/backend/servers/explorer-web/src/main/resources/application.properties @@ -15,6 +15,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration (testnet). mempool.api.base-url=https://mempool.space/testnet/api # diff --git a/backend/servers/explorer-web/src/test/resources/application.properties b/backend/servers/explorer-web/src/test/resources/application.properties index 213f97045..d9ef1ce86 100644 --- a/backend/servers/explorer-web/src/test/resources/application.properties +++ b/backend/servers/explorer-web/src/test/resources/application.properties @@ -15,6 +15,10 @@ spring.datasource.username=sa spring.datasource.password= # # ====================================================================================================================== +# Cache configuration. +spring.cache.type=caffeine +# +# ====================================================================================================================== # Mempool configuration (testnet). mempool.api.base-url=https://mempool.space/testnet/api # From 7080ce1d35b8a7fddbc1033c38ef207970d43a0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 Dec 2023 19:04:39 +0000 Subject: [PATCH 15/57] Bump com.squareup.okhttp3:okhttp from 5.0.0-alpha.11 to 5.0.0-alpha.12 Bumps [com.squareup.okhttp3:okhttp](https://github.com/square/okhttp) from 5.0.0-alpha.11 to 5.0.0-alpha.12. - [Changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md) - [Commits](https://github.com/square/okhttp/compare/jesse-5.0.0-alpha.11...parent-5.0.0-alpha.12) --- updated-dependencies: - dependency-name: com.squareup.okhttp3:okhttp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- util/test/common-test/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/test/common-test/pom.xml b/util/test/common-test/pom.xml index 847603585..48b44c9f3 100644 --- a/util/test/common-test/pom.xml +++ b/util/test/common-test/pom.xml @@ -72,7 +72,7 @@ com.squareup.okhttp3 okhttp - 5.0.0-alpha.11 + 5.0.0-alpha.12 From b9678c51f7f9b36f6bc782517eb309cd38a7602b Mon Sep 17 00:00:00 2001 From: straumat Date: Sun, 17 Dec 2023 21:45:55 +0100 Subject: [PATCH 16/57] Global statistics added to homepage --- .../web/configuration/WebConfiguration.java | 3 ++- .../web/controller/HomeController.java | 10 +++++++ .../util/constants/HomePagesConstants.java | 2 ++ .../src/main/resources/i18n/html.properties | 2 +- .../main/resources/i18n/statistic.properties | 7 +++++ .../src/main/resources/templates/home.html | 5 ++++ .../components/global_statistics.html | 18 +++++++++++++ .../fragments/layouts/default/header.html | 2 +- .../search/HomeControllerTest.java | 26 +++++++++++++++++++ 9 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 backend/servers/explorer-web/src/main/resources/i18n/statistic.properties create mode 100644 backend/servers/explorer-web/src/main/resources/templates/util/fragments/components/global_statistics.html diff --git a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/configuration/WebConfiguration.java b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/configuration/WebConfiguration.java index 5b11cc437..430a67c9b 100644 --- a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/configuration/WebConfiguration.java +++ b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/configuration/WebConfiguration.java @@ -61,7 +61,8 @@ public MessageSource messageSource() { "classpath:/i18n/asset", "classpath:/i18n/html", "classpath:/i18n/request", - "classpath:/i18n/search" + "classpath:/i18n/search", + "classpath:/i18n/statistic" ); messageSource.setDefaultEncoding("UTF-8"); return messageSource; diff --git a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/controller/HomeController.java b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/controller/HomeController.java index fd1259e2c..810452645 100644 --- a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/controller/HomeController.java +++ b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/controller/HomeController.java @@ -1,12 +1,15 @@ package org.royllo.explorer.web.controller; import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import org.royllo.explorer.core.service.statistics.StatisticService; import org.royllo.explorer.web.util.base.BaseController; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import static org.royllo.explorer.web.util.constants.HomePagesConstants.GLOBAL_STATISTICS_ATTRIBUTE; import static org.royllo.explorer.web.util.constants.HomePagesConstants.HOME_PAGE; import static org.royllo.explorer.web.util.constants.ModelAttributeConstants.QUERY_ATTRIBUTE; @@ -14,8 +17,12 @@ * Home page controller. */ @Controller +@RequiredArgsConstructor public class HomeController extends BaseController { + /** Statistic service. */ + private final StatisticService statisticService; + /** * Page displaying home. * @@ -32,6 +39,9 @@ public String home(final Model model, // Update the model with the query. model.addAttribute(QUERY_ATTRIBUTE, query); + // Add the statistics to the model. + model.addAttribute(GLOBAL_STATISTICS_ATTRIBUTE, statisticService.getGlobalStatistics()); + return getPageOrFragment(request, HOME_PAGE); } diff --git a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/util/constants/HomePagesConstants.java b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/util/constants/HomePagesConstants.java index b3e8f97b5..4d35c695e 100644 --- a/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/util/constants/HomePagesConstants.java +++ b/backend/servers/explorer-web/src/main/java/org/royllo/explorer/web/util/constants/HomePagesConstants.java @@ -12,4 +12,6 @@ public class HomePagesConstants { /** Home page. */ public static final String HOME_PAGE = "home"; + /** Global statistics constants. */ + public static final String GLOBAL_STATISTICS_ATTRIBUTE = "globalStatistics"; } diff --git a/backend/servers/explorer-web/src/main/resources/i18n/html.properties b/backend/servers/explorer-web/src/main/resources/i18n/html.properties index 6087a44bc..19062a3fe 100644 --- a/backend/servers/explorer-web/src/main/resources/i18n/html.properties +++ b/backend/servers/explorer-web/src/main/resources/i18n/html.properties @@ -14,7 +14,7 @@ og.image=https://explorer.royllo.org/images/open_graph/royllo.png # # ====================================================================================================================== # Home -home.message=Search for a Taproot asset like "roylloCoin". +home.message=Search for a Taproot asset like "roylloCoin" # # ====================================================================================================================== # Footer diff --git a/backend/servers/explorer-web/src/main/resources/i18n/statistic.properties b/backend/servers/explorer-web/src/main/resources/i18n/statistic.properties new file mode 100644 index 000000000..9d48f2b57 --- /dev/null +++ b/backend/servers/explorer-web/src/main/resources/i18n/statistic.properties @@ -0,0 +1,7 @@ +# ====================================================================================================================== +# Statistics +# +# Global statistics. +statistics.global.universeCount=Universe count +statistics.global.assetCount=Asset count +statistics.global.assetStateCount=Asset state count \ No newline at end of file diff --git a/backend/servers/explorer-web/src/main/resources/templates/home.html b/backend/servers/explorer-web/src/main/resources/templates/home.html index acd2cbd79..005ebd886 100644 --- a/backend/servers/explorer-web/src/main/resources/templates/home.html +++ b/backend/servers/explorer-web/src/main/resources/templates/home.html @@ -34,6 +34,11 @@ */-->
+ +
+
+
+ diff --git a/backend/servers/explorer-web/src/main/resources/templates/util/fragments/components/global_statistics.html b/backend/servers/explorer-web/src/main/resources/templates/util/fragments/components/global_statistics.html new file mode 100644 index 000000000..11d9a89b1 --- /dev/null +++ b/backend/servers/explorer-web/src/main/resources/templates/util/fragments/components/global_statistics.html @@ -0,0 +1,18 @@ +
+ +
+
+
+
+ +
+
+
+
+ +
+
New
+
+
+ +
\ No newline at end of file diff --git a/backend/servers/explorer-web/src/main/resources/templates/util/fragments/layouts/default/header.html b/backend/servers/explorer-web/src/main/resources/templates/util/fragments/layouts/default/header.html index cf62430e7..32b3a6e89 100644 --- a/backend/servers/explorer-web/src/main/resources/templates/util/fragments/layouts/default/header.html +++ b/backend/servers/explorer-web/src/main/resources/templates/util/fragments/layouts/default/header.html @@ -17,7 +17,7 @@ -
+