mirror of
				https://github.com/gofiber/storage.git
				synced 2025-10-31 11:46:32 +08:00 
			
		
		
		
	Compare commits
	
		
			423 Commits
		
	
	
		
			nats/v1.0.
			...
			mockstorag
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 05dff2a932 | ||
|   | 6c74d0b864 | ||
|   | 6f85e022d4 | ||
|   | bbae53fb35 | ||
|   | 16f9e43d82 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0231178416 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4c2a305e61 | ||
|   | fae42e4592 | ||
|   | 9b24adebf2 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f1de042f2d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6817772063 | ||
|   | d91341723b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9ae9f31fe9 | ||
|   | e768b04589 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f2ddd06660 | ||
|   | ef93d8635c | ||
|   | 4ebd332f94 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 78b024645f | ||
|   | 2077c74abc | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | fc586597bd | ||
|   | cb3a645bda | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d2ef1c22bd | ||
|   | cf99591f15 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5991f3a5e2 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b121644251 | ||
|   | 57dedb7d10 | ||
|   | 91d99c4d77 | ||
|   | 87d722a8bb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 78f9e38ef6 | ||
|   | e8f8290853 | ||
|   | 0fd13ff4dd | ||
|   | 58d9dd4d40 | ||
|   | 1ab83b0150 | ||
|   | ce553f5f1c | ||
|   | f088e43dce | ||
|   | 800262d044 | ||
|   | 024059f926 | ||
|   | 2ce70bcb0e | ||
|   | 442c85f4ea | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6a9e104b0a | ||
|   | ef7df44543 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a2eb0d6b3f | ||
|   | 35c0f4bab3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | cd0ee7e84d | ||
|   | 2ee9860581 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7ef423aa2f | ||
|   | ba68a75e60 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6f20abd7d6 | ||
|   | ffaa1494ed | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 57784bac1b | ||
|   | 1291405328 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 271a8b8eeb | ||
|   | 0324ab518e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 45a3e9719c | ||
|   | bda840986b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5aa5e4ea92 | ||
|   | 32c98e7637 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ab57036636 | ||
|   | 49e5f016e0 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 99ad00fb86 | ||
|   | 72ad24d050 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f94afabfbb | ||
|   | 8be98ec12f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5742e6395e | ||
|   | 5e25d4abca | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1881da3c9e | ||
|   | e45af13e62 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 697f9903d7 | ||
|   | 1e2668c44b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4324fbb529 | ||
|   | 69fb880bbf | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 273db55a3b | ||
|   | 3f5e8cf577 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 88206e0108 | ||
|   | 2b2f2bed62 | ||
|   | c78f234f53 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 385904de72 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | caa8330a4a | ||
|   | e59fb1708b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9dc2b17d95 | ||
|   | ee4532a57a | ||
|   | 2c75932d90 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 70636baba3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8b9db406a8 | ||
|   | e18eaa828a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 12f859f2ee | ||
|   | 92dad60f1d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b8f6c0417b | ||
|   | 7473602f05 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | fbf4c82ee5 | ||
|   | 4a0c770dff | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8b6fa52653 | ||
|   | 12cac4c29e | ||
|   | 1e4e992d9e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ede4c46a43 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 992f577828 | ||
|   | e1784a8d41 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2202ca55e5 | ||
|   | 051a869328 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 699b665ada | ||
|   | 5b35b5937b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8499349011 | ||
|   | 2b8cf0f308 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5e0232429e | ||
|   | abad049ea3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 44ec78f6cb | ||
|   | 946c51b77b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f9aa336f93 | ||
|   | 43d9828355 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1f4893bdb1 | ||
|   | e48d3a2f68 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 81c33266b7 | ||
|   | 8585ae3988 | ||
|   | 4bdec1c00d | ||
|   | 6b1fb52cbf | ||
|   | eeb431151d | ||
|   | 22cc9c6486 | ||
|   | cdd09b4066 | ||
|   | 901110676d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b59549eb58 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f9a6291b7f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | de27d57cd2 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d87c26eb2a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 324d3c7d92 | ||
|   | 25ad594682 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f0cecde9de | ||
|   | a61b434952 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c3df35dacb | ||
|   | 591957c96e | ||
|   | 0054787fb2 | ||
|   | 706c8b6aa3 | ||
|   | 8c7e5acc3c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8e8c619a30 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8212d0317a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 03943a9436 | ||
|   | 79b8fb118e | ||
|   | 71bbf1ef10 | ||
|   | 1bc6b49847 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 873457db91 | ||
|   | 8e3d3f928f | ||
|   | d4b1c839e3 | ||
|   | da47a1fa62 | ||
|   | 5de7b1b072 | ||
|   | 0f8625f851 | ||
|   | b397ca3c8e | ||
|   | 8bbaa80d22 | ||
|   | ffeab66be3 | ||
|   | 29245c6088 | ||
|   | 5cd7843155 | ||
|   | 64ba9a2f98 | ||
|   | 9590f1a0f0 | ||
|   | 0a5bf1359b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 819176ead9 | ||
|   | 3a6a27d56f | ||
|   | 1b1bc5958c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7f504e3adc | ||
|   | 64b08d48dc | ||
|   | 1527f88e51 | ||
|   | 1ae7fa0a93 | ||
|   | a5b09adaa3 | ||
|   | 73bb4f108a | ||
|   | 7e321c1339 | ||
|   | 6d5d57d92f | ||
|   | ad8df22ea6 | ||
|   | 126df7488f | ||
|   | 235e47e230 | ||
|   | b72e7331f3 | ||
|   | 64725d983c | ||
|   | 2c4232d7ff | ||
|   | 554fa73daf | ||
|   | 80b7b4ff71 | ||
|   | bc9b6c3923 | ||
|   | f0533e6b7c | ||
|   | e63833bc5c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 346b2dd7bb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7e0197ce31 | ||
|   | 58ff26a611 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3e0c8567df | ||
|   | d50cadeae6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | cba67fb5df | ||
|   | f4f69d7a71 | ||
|   | d8f61c2a30 | ||
|   | 26e9d837d8 | ||
|   | a3af67c4c0 | ||
|   | c93cef290e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 68edc3ad83 | ||
|   | 93f7a52890 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b85e6d0d56 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d584f9ece7 | ||
|   | 7735395654 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c95811231d | ||
|   | 9d3cdcebcb | ||
|   | 5ef27d1806 | ||
|   | a5bee00bcb | ||
|   | 092fcc9317 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e75d6b7eb4 | ||
|   | 65bc2797a6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 92150c3054 | ||
|   | 94b3f09270 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c5ec19cfc8 | ||
|   | 21ef5b1fef | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5d0e366e4c | ||
|   | cfafa22e77 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6b4507ad29 | ||
|   | 510d5832aa | ||
|   | 5b26a0b7ac | ||
|   | f0076b556d | ||
|   | 959cadc5ba | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 495c156eac | ||
|   | 033ebf7720 | ||
|   | 5e03e38c3c | ||
|   | 8ef7cd731a | ||
|   | 12eb0f16e1 | ||
|   | fdda850e52 | ||
|   | b8d752bd7f | ||
|   | 154e15008a | ||
|   | a132bd42a6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8a140d7608 | ||
|   | 9f847168ec | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ef26f16389 | ||
|   | 9737161f16 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ab3f1834a7 | ||
|   | fe1c16e9cd | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5d0f193ff7 | ||
|   | 4798a58e02 | ||
|   | f022a14091 | ||
|   | 6a5b6eb566 | ||
|   | e541347e84 | ||
|   | df3ac38b36 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f21f9b9d7d | ||
|   | 338041533d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | af6af373a6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 486479e620 | ||
|   | f9471854c6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 94fe279d1d | ||
|   | 8fbe3e8afb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 717d1afc2c | ||
|   | e70cc58c03 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e3862929db | ||
|   | a6be2f6d15 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3f10692020 | ||
|   | 4798bc4522 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6c08ac408d | ||
|   | 65172b14fc | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | bbf49af5ac | ||
|   | 65db3caad6 | ||
|   | 1c65d386dd | ||
|   | 01d6a9481e | ||
|   | 796363eb5a | ||
|   | 19be481dfc | ||
|   | 398c18391e | ||
|   | e9bd7e9c55 | ||
|   | c83d7f8201 | ||
|   | 5f53fa0ea0 | ||
|   | 7a7807bed1 | ||
|   | cc2ea9a4f3 | ||
|   | 551373a086 | ||
|   | 115d2902a3 | ||
|   | 7410373fad | ||
|   | d6e0360de6 | ||
|   | 8028341b13 | ||
|   | 85133f679a | ||
|   | c424c6688a | ||
|   | 5817eafd81 | ||
|   | 8b6245bc97 | ||
|   | adad63a053 | ||
|   | 79a9ae2870 | ||
|   | c49806a515 | ||
|   | 6fa3ab028a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 40639065e8 | ||
|   | 84fc9ab2cc | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6a1f24af86 | ||
|   | 390f795dc8 | ||
|   | 4bd11fe45b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e71ff2f2ae | ||
|   | 4dc463c32a | ||
|   | 53cc0c9fc2 | ||
|   | e8b41f1b5d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f38d256f3e | ||
|   | 630632b4a4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 84ec050527 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 05d1237cb6 | ||
|   | 2680f18e3f | ||
|   | 92cd02fdbf | ||
|   | 2eb0ca23ac | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d942a697eb | ||
|   | c2811fa897 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a35fdd9a21 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 91880179cb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f8d5157db3 | ||
|   | 1b6f22b6e1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b137356bde | ||
|   | b4d8ba6b8c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6c0585b30f | ||
|   | 795caf4e83 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2c1132bac8 | ||
|   | 18b7ad8164 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 77f6a457fd | ||
|   | fe44ce07d4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4ce7c1490d | ||
|   | e8c9451a23 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7cf6c951e8 | ||
|   | 66a63322aa | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 02a8aa1f23 | ||
|   | cda699da02 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | af7e046cb2 | ||
|   | 85161572c1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2b083ca3ec | ||
|   | 5e4c65a751 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 23df74bba9 | ||
|   | 41f417cfd5 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1f82fff0d5 | ||
|   | f3a26d385c | ||
|   | 1761a1900a | ||
|   | 2a95425c30 | ||
|   | 7c2d6950a0 | ||
|   | 2adb980fbb | ||
|   | b4e65c7dae | ||
|   | 1bcb639dd6 | ||
|   | f4d9f05806 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | fb037eb56b | ||
|   | 21a2ad89f2 | ||
|   | fc05d5dc68 | ||
|   | 11266c42d9 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 576833a40a | ||
|   | b1a63d49a6 | ||
|   | 3e3817a0a8 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3869224b60 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e9d3cdeec3 | ||
|   | 53b5e83522 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3a71d5875a | ||
|   | 39246dbede | ||
|   | 1a954ac3c9 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 41b309803c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4a01aa697c | ||
|   | 48d5b3ee2d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d590afc2d0 | ||
|   | 3cde0a68aa | ||
|   | fe0a0e8cf7 | ||
|   | 827533dabf | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8c7253050e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d411170b49 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e954b447ff | ||
|   | 603841077f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9c91986a77 | ||
|   | f24b3aef10 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 4422abc0c4 | ||
|   | d40ab65298 | ||
|   | 2cd4fafbe9 | ||
|   | 0daac61d8c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6eca202fa2 | ||
|   | 1d5616a514 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f8729ba507 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3f2dfd2a5d | ||
|   | 80972cf738 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2412e2d057 | ||
|   | 2ae1b64f64 | ||
|   | 87558e15bd | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | aee383f947 | ||
|   | 22a3948985 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7487122ea3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5f50f78581 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | cc71a706e1 | ||
|   | 9eed243a8e | ||
|   | 1d3e45a078 | ||
|   | b10d57786a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c2b44e5773 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5fda7d2a02 | ||
|   | 89bb451dd8 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 016f3a20fb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | df1713cfa1 | ||
|   | bb14a6b3f1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0898eda7a3 | ||
|   | 90157b80b7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 028aedcd5e | ||
|   | ad8da667cc | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 57ca55901a | ||
|   | 7479b8518e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d48fad222c | ||
|   | 0c81547457 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5d519ab279 | ||
|   | 02cc537182 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 13956638ee | ||
|   | 759abf2809 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | fb8f2b1820 | ||
|   | a3ce73c537 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d21a27f61e | ||
|   | e077459d24 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b0a0d8bee6 | ||
|   | 2cf98d41d6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | dd59d75d51 | ||
|   | d1145aff90 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 95cdfde50e | ||
|   | 645ba84182 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f6aa03a2bc | ||
|   | 3d07c48b6d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ae1276d3e7 | ||
|   | 007dd98afb | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9d537bbfea | ||
|   | b639546b9d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9ce94ab4e7 | ||
|   | dc2f4ca575 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b02ce7473f | ||
|   | 4fdfb5a7de | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ce06f5a85c | ||
|   | 31c5d1b216 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | bfccc3aeee | ||
|   | 3f4ef82c5e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6c6f2f5371 | ||
|   | 7026c1458f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f131ae5e0c | ||
|   | dc6681b640 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2462c722a8 | ||
|   | fa2dd6cd14 | ||
|   | bc38f922ba | ||
|   | 29ff72356a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c5a192e7b9 | ||
|   | 5f10c814f8 | ||
|   | 53273f679b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 27cfef507e | ||
|   | c54814ba55 | ||
|   | 1efdb40a04 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5b08f9c1aa | 
							
								
								
									
										1
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.github/CODEOWNERS
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | * @gofiber/maintainers | ||||||
							
								
								
									
										12
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @@ -26,6 +26,12 @@ updates: | |||||||
|             - "🤖 Dependencies" |             - "🤖 Dependencies" | ||||||
|         schedule: |         schedule: | ||||||
|             interval: "daily" |             interval: "daily" | ||||||
|  |     -   package-ecosystem: "gomod" | ||||||
|  |         directory: "/cloudflarekv/" # Location of package manifests | ||||||
|  |         labels: | ||||||
|  |             - "🤖 Dependencies" | ||||||
|  |         schedule: | ||||||
|  |             interval: "daily" | ||||||
|     -   package-ecosystem: "gomod" |     -   package-ecosystem: "gomod" | ||||||
|         directory: "/couchbase/" # Location of package manifests |         directory: "/couchbase/" # Location of package manifests | ||||||
|         labels: |         labels: | ||||||
| @@ -74,6 +80,12 @@ updates: | |||||||
|           - "🤖 Dependencies" |           - "🤖 Dependencies" | ||||||
|       schedule: |       schedule: | ||||||
|           interval: "daily" |           interval: "daily" | ||||||
|  |     - package-ecosystem: "gomod" | ||||||
|  |       directory: "/mockstorage/" # Location of package manifests | ||||||
|  |       labels: | ||||||
|  |           - "🤖 Dependencies" | ||||||
|  |       schedule: | ||||||
|  |           interval: "daily" | ||||||
|     -   package-ecosystem: "gomod" |     -   package-ecosystem: "gomod" | ||||||
|         directory: "/mongodb/" # Location of package manifests |         directory: "/mongodb/" # Location of package manifests | ||||||
|         labels: |         labels: | ||||||
|   | |||||||
							
								
								
									
										46
									
								
								.github/release-drafter-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								.github/release-drafter-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | name-template: "CloudflareKV - v$RESOLVED_VERSION" | ||||||
|  | tag-template: "cloudflarekv/v$RESOLVED_VERSION" | ||||||
|  | tag-prefix: cloudflarekv/v | ||||||
|  | include-paths: | ||||||
|  |   - cloudflarekv | ||||||
|  | categories: | ||||||
|  |   - title: "🚀 New" | ||||||
|  |     labels: | ||||||
|  |       - "✏️ Feature" | ||||||
|  |   - title: "🧹 Updates" | ||||||
|  |     labels: | ||||||
|  |       - "🧹 Updates" | ||||||
|  |       - "🤖 Dependencies" | ||||||
|  |   - title: "🐛 Fixes" | ||||||
|  |     labels: | ||||||
|  |       - "☢️ Bug" | ||||||
|  |   - title: "📚 Documentation" | ||||||
|  |     labels: | ||||||
|  |       - "📒 Documentation" | ||||||
|  | change-template: "- $TITLE (#$NUMBER)" | ||||||
|  | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. | ||||||
|  | exclude-contributors: | ||||||
|  |   - dependabot | ||||||
|  |   - dependabot[bot] | ||||||
|  | version-resolver: | ||||||
|  |   major: | ||||||
|  |     labels: | ||||||
|  |       - "major" | ||||||
|  |   minor: | ||||||
|  |     labels: | ||||||
|  |       - "minor" | ||||||
|  |       - "✏️ Feature" | ||||||
|  |   patch: | ||||||
|  |     labels: | ||||||
|  |       - "patch" | ||||||
|  |       - "📒 Documentation" | ||||||
|  |       - "☢️ Bug" | ||||||
|  |       - "🤖 Dependencies" | ||||||
|  |       - "🧹 Updates" | ||||||
|  |   default: patch | ||||||
|  | template: | | ||||||
|  |   $CHANGES | ||||||
|  |    | ||||||
|  |   **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...cloudflarekv/v$RESOLVED_VERSION | ||||||
|  |    | ||||||
|  |   Thank you $CONTRIBUTORS for making this update possible. | ||||||
							
								
								
									
										50
									
								
								.github/release-drafter-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								.github/release-drafter-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | name-template: 'MockStorage - v$RESOLVED_VERSION' | ||||||
|  | tag-template: 'mockstorage/v$RESOLVED_VERSION' | ||||||
|  | tag-prefix: mockstorage/v | ||||||
|  | include-paths: | ||||||
|  |   - mockstorage | ||||||
|  | categories: | ||||||
|  |     - title: '❗ Breaking Changes' | ||||||
|  |       labels: | ||||||
|  |           - '❗ BreakingChange' | ||||||
|  |     - title: '🚀 New' | ||||||
|  |       labels: | ||||||
|  |           - '✏️ Feature' | ||||||
|  |     - title: '🧹 Updates' | ||||||
|  |       labels: | ||||||
|  |           - '🧹 Updates' | ||||||
|  |           - '🤖 Dependencies' | ||||||
|  |     - title: '🐛 Fixes' | ||||||
|  |       labels: | ||||||
|  |           - '☢️ Bug' | ||||||
|  |     - title: '📚 Documentation' | ||||||
|  |       labels: | ||||||
|  |           - '📒 Documentation' | ||||||
|  | change-template: '- $TITLE (#$NUMBER)' | ||||||
|  | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. | ||||||
|  | exclude-contributors: | ||||||
|  |     - dependabot | ||||||
|  |     - dependabot[bot] | ||||||
|  | version-resolver: | ||||||
|  |     major: | ||||||
|  |         labels: | ||||||
|  |             - 'major' | ||||||
|  |             - '❗ BreakingChange' | ||||||
|  |     minor: | ||||||
|  |         labels: | ||||||
|  |             - 'minor' | ||||||
|  |             - '✏️ Feature' | ||||||
|  |     patch: | ||||||
|  |         labels: | ||||||
|  |             - 'patch' | ||||||
|  |             - '📒 Documentation' | ||||||
|  |             - '☢️ Bug' | ||||||
|  |             - '🤖 Dependencies' | ||||||
|  |             - '🧹 Updates' | ||||||
|  |     default: patch | ||||||
|  | template: | | ||||||
|  |     $CHANGES | ||||||
|  |  | ||||||
|  |     **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...mockstorage/v$RESOLVED_VERSION | ||||||
|  |  | ||||||
|  |     Thank you $CONTRIBUTORS for making this update possible. | ||||||
							
								
								
									
										73
									
								
								.github/release-drafter-scylladb.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								.github/release-drafter-scylladb.yml
									
									
									
									
										vendored
									
									
								
							| @@ -4,40 +4,47 @@ tag-prefix: scylladb/v | |||||||
| include-paths: | include-paths: | ||||||
|   - scylladb |   - scylladb | ||||||
| categories: | categories: | ||||||
|   - title: '🚀 New' |     - title: '❗ Breaking Changes' | ||||||
|     labels: |       labels: | ||||||
|       - '✏️ Feature' |           - '❗ BreakingChange' | ||||||
|   - title: '🧹 Updates' |     - title: '🚀 New' | ||||||
|     labels: |       labels: | ||||||
|       - '🧹 Updates' |           - '✏️ Feature' | ||||||
|       - '🤖 Dependencies' |     - title: '🧹 Updates' | ||||||
|   - title: '🐛 Fixes' |       labels: | ||||||
|     labels: |           - '🧹 Updates' | ||||||
|       - '☢️ Bug' |           - '🤖 Dependencies' | ||||||
|   - title: '📚 Documentation' |     - title: '🐛 Fixes' | ||||||
|     labels: |       labels: | ||||||
|       - '📒 Documentation' |           - '☢️ Bug' | ||||||
|  |     - title: '📚 Documentation' | ||||||
|  |       labels: | ||||||
|  |           - '📒 Documentation' | ||||||
| change-template: '- $TITLE (#$NUMBER)' | change-template: '- $TITLE (#$NUMBER)' | ||||||
| change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. | change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. | ||||||
|  | exclude-contributors: | ||||||
|  |     - dependabot | ||||||
|  |     - dependabot[bot] | ||||||
| version-resolver: | version-resolver: | ||||||
|   major: |     major: | ||||||
|     labels: |         labels: | ||||||
|       - 'major' |             - 'major' | ||||||
|   minor: |             - '❗ BreakingChange' | ||||||
|     labels: |     minor: | ||||||
|       - 'minor' |         labels: | ||||||
|       - '✏️ Feature' |             - 'minor' | ||||||
|   patch: |             - '✏️ Feature' | ||||||
|     labels: |     patch: | ||||||
|       - 'patch' |         labels: | ||||||
|       - '📒 Documentation' |             - 'patch' | ||||||
|       - '☢️ Bug' |             - '📒 Documentation' | ||||||
|       - '🤖 Dependencies' |             - '☢️ Bug' | ||||||
|       - '🧹 Updates' |             - '🤖 Dependencies' | ||||||
|   default: patch |             - '🧹 Updates' | ||||||
|  |     default: patch | ||||||
| template: | | template: | | ||||||
|   $CHANGES |     $CHANGES | ||||||
|    |  | ||||||
|   **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...scylladb/v$RESOLVED_VERSION |     **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...scylladb/v$RESOLVED_VERSION | ||||||
|    |  | ||||||
|   Thank you $CONTRIBUTORS for making this update possible. |     Thank you $CONTRIBUTORS for making this update possible. | ||||||
|   | |||||||
							
								
								
									
										107
									
								
								.github/scripts/initialize-wrangler.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										107
									
								
								.github/scripts/initialize-wrangler.sh
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,107 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | # generate cloudflarekv/index.ts | ||||||
|  | cat <<EOF > cloudflarekv/index.ts | ||||||
|  | export default { async fetch(Request, env) { | ||||||
|  |  | ||||||
|  |   const namespace = env.TEST_NAMESPACE1; | ||||||
|  |  | ||||||
|  |   if (Request.url === "http://localhost:8787/health") { | ||||||
|  |     return new Response("Success"); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   if (Request.url === "http://localhost:8787/writeworkerskvkeyvaluepair") { | ||||||
|  |     const res = await Request.json(); | ||||||
|  |     const { key, val } = res; | ||||||
|  |     WriteWorkersKVKeyValuePair(namespace, key, val); | ||||||
|  |     return new Response("Success"); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   else if (Request.url === "http://localhost:8787/listworkerskvkeys") { | ||||||
|  |     const resp = await Request.json(); | ||||||
|  |     const { limit, prefix, cursor } = resp; | ||||||
|  |     const list = await ListWorkersKVKeys(namespace, limit, prefix, cursor); | ||||||
|  |     return new Response(list); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   else if (Request.url === "http://localhost:8787/deleteworkerskvpairbykey") { | ||||||
|  |     const res = await Request.json(); | ||||||
|  |     const { key } = res; | ||||||
|  |     await DeleteWorkersKVPairByKey(namespace, key); | ||||||
|  |  | ||||||
|  |     return new Response(key) | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   else if (Request.url === "http://localhost:8787/getworkerskvvaluebykey") { | ||||||
|  |     const key = (await Request.json()).key; | ||||||
|  |     const res = await GetWorkersKVValueByKey(namespace, key); | ||||||
|  |  | ||||||
|  |     return new Response(res); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   else if (Request.url === "http://localhost:8787/deleteworkerskventries") { | ||||||
|  |     const res = await Request.json(); | ||||||
|  |     const { keys } = res; | ||||||
|  |     const newKeys = keys.filter(x => x.length > 0); | ||||||
|  |     await DeleteWorkersKVEntries(namespace, newKeys); | ||||||
|  |  | ||||||
|  |     return new Response("Success") | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const GetWorkersKVValueByKey = async (NAMESPACE, key) => { | ||||||
|  |   const val = await NAMESPACE.get(key); | ||||||
|  |  | ||||||
|  |   return val; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const WriteWorkersKVKeyValuePair = async (NAMESPACE, key, val) => { | ||||||
|  |   await NAMESPACE.put(key, val); | ||||||
|  |  | ||||||
|  |   return "Wrote Successfully" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const DeleteWorkersKVPairByKey = async (NAMESPACE, key) => { | ||||||
|  |   await NAMESPACE.delete(key); | ||||||
|  |  | ||||||
|  |   return "Delete Successfully" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const ListWorkersKVKeys = async (NAMESPACE, limit, prefix, cursor) => { | ||||||
|  |   const resp = await NAMESPACE.list({ limit, prefix, cursor }); | ||||||
|  |  | ||||||
|  |   return JSON.stringify(resp.keys); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const DeleteWorkersKVEntries = async (NAMESPACE, keys) => { | ||||||
|  |   for (let key of keys) { | ||||||
|  |     await NAMESPACE.delete(key); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   return "Delete Successfully" | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | EOF | ||||||
|  |  | ||||||
|  | echo "index.ts generated" | ||||||
|  |  | ||||||
|  | # generate cloudflarekv/wrangler.toml | ||||||
|  | cat <<EOF > cloudflarekv/wrangler.toml | ||||||
|  | main = "index.ts" | ||||||
|  |  | ||||||
|  | kv_namespaces = [ | ||||||
|  |   { binding = "TEST_NAMESPACE1", id = "hello", preview_id = "world" }, | ||||||
|  | ] | ||||||
|  |  | ||||||
|  | workers_dev = true | ||||||
|  |  | ||||||
|  | compatibility_date = "2024-03-20" | ||||||
|  |  | ||||||
|  | [dev] | ||||||
|  | port = 8787 | ||||||
|  | local_protocol = "http" | ||||||
|  | EOF | ||||||
|  |  | ||||||
|  | echo "wrangler.toml generated" | ||||||
							
								
								
									
										2
									
								
								.github/workflows/auto-labeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/auto-labeler.yml
									
									
									
									
										vendored
									
									
								
							| @@ -17,6 +17,6 @@ jobs: | |||||||
|         steps: |         steps: | ||||||
|             -   name: Check Labels |             -   name: Check Labels | ||||||
|                 id: labeler |                 id: labeler | ||||||
|                 uses: fuxingloh/multi-labeler@v2 |                 uses: fuxingloh/multi-labeler@v4 | ||||||
|                 with: |                 with: | ||||||
|                     github-token: ${{secrets.GITHUB_TOKEN}} |                     github-token: ${{secrets.GITHUB_TOKEN}} | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								.github/workflows/benchmark.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/benchmark.yml
									
									
									
									
										vendored
									
									
								
							| @@ -88,10 +88,21 @@ jobs: | |||||||
|           # NOTE: Keep this in sync with the version from go.mod |           # NOTE: Keep this in sync with the version from go.mod | ||||||
|           go-version: "1.20.x" |           go-version: "1.20.x" | ||||||
|  |  | ||||||
|  |       - name: Setup Node.js | ||||||
|  |         uses: actions/setup-node@v4 | ||||||
|  |         with: | ||||||
|  |           node-version: '18' | ||||||
|  |  | ||||||
|       - name: Install Azurite |       - name: Install Azurite | ||||||
|         run: | |         run: | | ||||||
|           docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0 --blobPort 10000 |           docker run -d -p 10000:10000 mcr.microsoft.com/azure-storage/azurite azurite-blob --blobHost 0.0.0.0 --blobPort 10000 | ||||||
|  |  | ||||||
|  |       - name: Install Cloudflare Worker | ||||||
|  |         run : | | ||||||
|  |           .github/scripts/initialize-wrangler.sh | ||||||
|  |           cd cloudflarekv && npx wrangler dev & | ||||||
|  |           npx wait-on tcp:8787 | ||||||
|  |  | ||||||
|       - name: Install Coherence |       - name: Install Coherence | ||||||
|         run: | |         run: | | ||||||
|           docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:22.06.5 |           docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:22.06.5 | ||||||
| @@ -144,8 +155,10 @@ jobs: | |||||||
|           set -o pipefail |           set -o pipefail | ||||||
|           for d in */ ; do |           for d in */ ; do | ||||||
|             [[ $d == "tls/" ]] && continue |             [[ $d == "tls/" ]] && continue | ||||||
|  |             [[ $d == "node_modules/" ]] && continue | ||||||
|  |  | ||||||
|             cd "$d" |             cd "$d" | ||||||
|  |             echo "Bench dir: $d" | ||||||
|             go test ./... -benchmem -run=^$ -bench . | tee -a ../output.txt |             go test ./... -benchmem -run=^$ -bench . | tee -a ../output.txt | ||||||
|             cd .. |             cd .. | ||||||
|           done |           done | ||||||
| @@ -168,7 +181,7 @@ jobs: | |||||||
|           key: ${{ runner.os }}-benchmark |           key: ${{ runner.os }}-benchmark | ||||||
|  |  | ||||||
|       - name: Save Benchmark Results |       - name: Save Benchmark Results | ||||||
|         uses: benchmark-action/github-action-benchmark@v1.19.3 |         uses: benchmark-action/github-action-benchmark@v1.20.3 | ||||||
|         with: |         with: | ||||||
|           tool: "go" |           tool: "go" | ||||||
|           output-file-path: output.txt |           output-file-path: output.txt | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/dependabot_automerge.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/dependabot_automerge.yml
									
									
									
									
										vendored
									
									
								
							| @@ -12,7 +12,7 @@ jobs: | |||||||
|     if: ${{ github.actor == 'dependabot[bot]' }} |     if: ${{ github.actor == 'dependabot[bot]' }} | ||||||
|     steps: |     steps: | ||||||
|        - name: Wait for check is finished |        - name: Wait for check is finished | ||||||
|          uses: lewagon/wait-on-check-action@v1.3.3 |          uses: lewagon/wait-on-check-action@v1.3.4 | ||||||
|          id: wait_for_checks |          id: wait_for_checks | ||||||
|          with: |          with: | ||||||
|              ref: ${{ github.event.pull_request.head.sha || github.sha }} |              ref: ${{ github.event.pull_request.head.sha || github.sha }} | ||||||
| @@ -28,7 +28,7 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - name: Dependabot metadata |       - name: Dependabot metadata | ||||||
|         id: metadata |         id: metadata | ||||||
|         uses: dependabot/fetch-metadata@v1.6.0 |         uses: dependabot/fetch-metadata@v2.1.0 | ||||||
|         with: |         with: | ||||||
|           github-token: "${{ secrets.PR_TOKEN }}" |           github-token: "${{ secrets.PR_TOKEN }}" | ||||||
|       - name: Enable auto-merge for Dependabot PRs |       - name: Enable auto-merge for Dependabot PRs | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/gosec.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/gosec.yml
									
									
									
									
										vendored
									
									
								
							| @@ -29,7 +29,7 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           fetch-depth: 0 |           fetch-depth: 0 | ||||||
|       - name: Changed Files |       - name: Changed Files | ||||||
|         uses: tj-actions/changed-files@v41 |         uses: tj-actions/changed-files@v44 | ||||||
|         id: changed-files |         id: changed-files | ||||||
|         with: |         with: | ||||||
|           files_ignore: | |           files_ignore: | | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								.github/workflows/release-drafter-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/release-drafter-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | name: Release Drafter Cloudflare KV | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     # branches to consider in the event; optional, defaults to all | ||||||
|  |     branches: | ||||||
|  |       - master | ||||||
|  |       - main | ||||||
|  |     paths: | ||||||
|  |       - "cloudflarekv/**" | ||||||
|  | jobs: | ||||||
|  |   draft_release_cloudflarekv: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     timeout-minutes: 30 | ||||||
|  |     steps: | ||||||
|  |       - uses: release-drafter/release-drafter@v6 | ||||||
|  |         with: | ||||||
|  |           config-name: release-drafter-cloudflarekv.yml | ||||||
|  |         env: | ||||||
|  |           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
							
								
								
									
										19
									
								
								.github/workflows/release-drafter-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/release-drafter-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | name: Release Drafter MockStorage | ||||||
|  | on: | ||||||
|  |     push: | ||||||
|  |         # branches to consider in the event; optional, defaults to all | ||||||
|  |         branches: | ||||||
|  |             - master | ||||||
|  |             - main | ||||||
|  |         paths: | ||||||
|  |             - 'mockstorage/**' | ||||||
|  | jobs: | ||||||
|  |     draft_release_memcache: | ||||||
|  |         runs-on: ubuntu-latest | ||||||
|  |         timeout-minutes: 30 | ||||||
|  |         steps: | ||||||
|  |             -   uses: release-drafter/release-drafter@v6 | ||||||
|  |                 with: | ||||||
|  |                     config-name: release-drafter-mockstorage.yml | ||||||
|  |                 env: | ||||||
|  |                     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
							
								
								
									
										2
									
								
								.github/workflows/release-drafter-nats.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/release-drafter-nats.yml
									
									
									
									
										vendored
									
									
								
							| @@ -12,7 +12,7 @@ jobs: | |||||||
|         runs-on: ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|         timeout-minutes: 30 |         timeout-minutes: 30 | ||||||
|         steps: |         steps: | ||||||
|             -   uses: release-drafter/release-drafter@v5 |             -   uses: release-drafter/release-drafter@v6 | ||||||
|                 with: |                 with: | ||||||
|                     config-name: release-drafter-nats.yml |                     config-name: release-drafter-nats.yml | ||||||
|                 env: |                 env: | ||||||
|   | |||||||
							
								
								
									
										41
									
								
								.github/workflows/test-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								.github/workflows/test-cloudflarekv.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | name: Tests CloudflareKV | ||||||
|  |  | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  |   pull_request: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   Tests: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |           go-version: | ||||||
|  |               - 1.21.x | ||||||
|  |               - 1.22.x | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout Repository | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Setup Go | ||||||
|  |         uses: actions/setup-go@v5 | ||||||
|  |         with: | ||||||
|  |           go-version: ${{ matrix.go-version }} | ||||||
|  |  | ||||||
|  |       - name: Setup Node.js | ||||||
|  |         uses: actions/setup-node@v4 | ||||||
|  |         with: | ||||||
|  |           node-version: '18' | ||||||
|  |  | ||||||
|  |       - name: Start Wrangler Dev | ||||||
|  |         run: | | ||||||
|  |           .github/scripts/initialize-wrangler.sh | ||||||
|  |           cd cloudflarekv && npx wrangler dev & | ||||||
|  |           npx wait-on tcp:8787 | ||||||
|  |  | ||||||
|  |       - name: Run Go Tests | ||||||
|  |         run: cd cloudflarekv && go test ./... -v -race | ||||||
							
								
								
									
										5
									
								
								.github/workflows/test-coherence.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/test-coherence.yml
									
									
									
									
										vendored
									
									
								
							| @@ -18,16 +18,17 @@ jobs: | |||||||
|           - 1.19.x |           - 1.19.x | ||||||
|           - 1.20.x |           - 1.20.x | ||||||
|           - 1.21.x |           - 1.21.x | ||||||
|  |           - 1.22.x | ||||||
|     steps: |     steps: | ||||||
|       - name: Fetch Repository |       - name: Fetch Repository | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - name: Startup Coherence |       - name: Startup Coherence | ||||||
|         run: | |         run: | | ||||||
|           docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:22.06.5 |           docker run -d -p 1408:1408 -p 30000:30000 ghcr.io/oracle/coherence-ce:23.09.2 | ||||||
|           sleep 30 |           sleep 30 | ||||||
|       -   name: Install Go |       -   name: Install Go | ||||||
|           uses: actions/setup-go@v5 |           uses: actions/setup-go@v5 | ||||||
|           with: |           with: | ||||||
|             go-version: '${{ matrix.go-version }}' |             go-version: '${{ matrix.go-version }}' | ||||||
|       -   name: Run Test |       -   name: Run Test | ||||||
|           run: cd ./coherence && go clean -testcache && go test ./... -v |           run: cd ./coherence && COHERENCE_SESSION_DEBUG=true go clean -testcache && go test ./... -v -race | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								.github/workflows/test-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								.github/workflows/test-mockstorage.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | on: | ||||||
|  |     push: | ||||||
|  |         branches: | ||||||
|  |             - master | ||||||
|  |             - main | ||||||
|  |         paths: | ||||||
|  |             - 'mockstorage/**' | ||||||
|  |     pull_request: | ||||||
|  |         paths: | ||||||
|  |             - 'mockstorage/**' | ||||||
|  | name: "Tests Local Storage" | ||||||
|  | jobs: | ||||||
|  |     Tests: | ||||||
|  |         strategy: | ||||||
|  |             matrix: | ||||||
|  |                 go-version: | ||||||
|  |                     - 1.21.x | ||||||
|  |                     - 1.22.x | ||||||
|  |         runs-on: ubuntu-latest | ||||||
|  |         steps: | ||||||
|  |             -   name: Fetch Repository | ||||||
|  |                 uses: actions/checkout@v4 | ||||||
|  |             -   name: Install Go | ||||||
|  |                 uses: actions/setup-go@v5 | ||||||
|  |                 with: | ||||||
|  |                     go-version: '${{ matrix.go-version }}' | ||||||
|  |             -   name: Test Mockstorage | ||||||
|  |                 run: cd ./mockstorage && go test ./... -v -race | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -28,6 +28,7 @@ | |||||||
| vendor/ | vendor/ | ||||||
| vendor | vendor | ||||||
| /Godeps/ | /Godeps/ | ||||||
|  | node_modules/ | ||||||
|  |  | ||||||
| # Go specific | # Go specific | ||||||
| go.work* | go.work* | ||||||
|   | |||||||
| @@ -54,6 +54,7 @@ type Storage interface { | |||||||
| - [AzureBlob](./azureblob/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-azureblob.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [AzureBlob](./azureblob/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-azureblob.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Badger](./badger/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-badger.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Badger](./badger/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-badger.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Bbolt](./bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-bbolt.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Bbolt](./bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-bbolt.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
|  | - [CloudflareKV](./cloudflarekv/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+CloudflareKV%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-cloudflarekv.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Coherence](./coherence/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Coherence%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-coherence.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Coherence](./coherence/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Coherence%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-coherence.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Couchbase](./couchbase/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Couchbase%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-couchbase.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Couchbase](./couchbase/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Couchbase%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-couchbase.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [DynamoDB](./dynamodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-dynamodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [DynamoDB](./dynamodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-dynamodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| @@ -61,6 +62,7 @@ type Storage interface { | |||||||
| - [Memcache](./memcache/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memcache.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Memcache](./memcache/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memcache.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Memory](./memory/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memory.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Memory](./memory/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-memory.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [Minio](./minio/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Minio%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-minio.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [Minio](./minio/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Minio%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-minio.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
|  | - [MockStorage](./mockstorage/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MockStorage%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mockstorage.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [MongoDB](./mongodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mongodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [MongoDB](./mongodb/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mongodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [MSSQL](./mssql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mssql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [MSSQL](./mssql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mssql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
| - [MySQL](./mysql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mysql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | - [MySQL](./mysql/README.md) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22"> <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-mysql.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B" /> </a> | ||||||
|   | |||||||
| @@ -3,9 +3,9 @@ module github.com/gofiber/storage/arangodb/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/arangodb/go-driver v1.6.1 | 	github.com/arangodb/go-driver v1.6.2 | ||||||
| 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| github.com/arangodb/go-driver v1.6.1 h1:bnhrpbA4U1NU13JOWs5sWWYMtQwdjKT0+jkl8dSndyY= | github.com/arangodb/go-driver v1.6.2 h1:3o4inejwR7VMmsKvQJ6hepx4au9sUT6C/RDrXykuD1g= | ||||||
| github.com/arangodb/go-driver v1.6.1/go.mod h1:ywucwwi34GBxxXFWw/ym+7/66//L4K9abxk/sFJro2k= | github.com/arangodb/go-driver v1.6.2/go.mod h1:2BCE6y3DNSLqIXnDvf4CR6WdzZZloYudEy+sasimLiQ= | ||||||
| github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e h1:Xg+hGrY2LcQBbxd0ZFdbGSyRKTYMZCfBbw/pMJFOk1g= | github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e h1:Xg+hGrY2LcQBbxd0ZFdbGSyRKTYMZCfBbw/pMJFOk1g= | ||||||
| github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e/go.mod h1:mq7Shfa/CaixoDxiyAAc5jZ6CVBAyPaNQCGS7mkj4Ho= | github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e/go.mod h1:mq7Shfa/CaixoDxiyAAc5jZ6CVBAyPaNQCGS7mkj4Ho= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| @@ -15,8 +15,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb | |||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
|   | |||||||
| @@ -3,16 +3,16 @@ module github.com/gofiber/storage/azureblob/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1 | 	github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	golang.org/x/net v0.19.0 // indirect | 	golang.org/x/net v0.23.0 // indirect | ||||||
| 	golang.org/x/text v0.14.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,27 +1,27 @@ | |||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 h1:E+OJmp2tPvt1W+amx48v1eqbjDYsgN+RzP4q16yV5eM= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1/go.mod h1:a6xsAQUZg+VsS3TJ05SRp524Hs4pZ/AeFSr5ENf0Yjo= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 h1:LqbJ/WzJUwBf8UiaSzgX7aMclParm9/5Vgp+TY51uBQ= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2/go.mod h1:yInRyqWXAuaPrgI7p70+lDDgh3mlBohis29jGMISnmc= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70= | github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.5.0 h1:AifHbc4mg0x9zW52WOpKbsHaDKuRhlI7TVl47thgQ70= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1 h1:AMf7YbZOZIW5b66cXNHMWWT/zkjhz5+a+k/3x40EO7E= | github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 h1:YUUxeiOWgdAQE3pXt2H7QXzZs0q8UBjgRbl56qo8GYM= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1/go.mod h1:uwfk06ZBcvL/g4VHNjurPfVln9NMbsk2XIZxJ+hu81k= | github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2/go.mod h1:dmXQgZuiSubAecswZE+Sm8jkvEa7kQgTPVRvwL/nd0E= | ||||||
| github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 h1:WpB/QDNLpMw72xHJc34BNNykqSOeEJDAWkhf0u12/Jk= | github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= | github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= | ||||||
| github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= | github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= | ||||||
| github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||||
| github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | ||||||
| github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= | github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= | golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= | ||||||
| golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= | golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||||
| golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= | golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
|   | |||||||
| @@ -5,7 +5,7 @@ go 1.19 | |||||||
| require ( | require ( | ||||||
| 	github.com/dgraph-io/badger/v3 v3.2103.5 | 	github.com/dgraph-io/badger/v3 v3.2103.5 | ||||||
| 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -25,8 +25,8 @@ require ( | |||||||
| 	github.com/pkg/errors v0.9.1 // indirect | 	github.com/pkg/errors v0.9.1 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	go.opencensus.io v0.24.0 // indirect | 	go.opencensus.io v0.24.0 // indirect | ||||||
| 	golang.org/x/net v0.17.0 // indirect | 	golang.org/x/net v0.25.0 // indirect | ||||||
| 	golang.org/x/sys v0.13.0 // indirect | 	golang.org/x/sys v0.20.0 // indirect | ||||||
| 	google.golang.org/protobuf v1.31.0 // indirect | 	google.golang.org/protobuf v1.33.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -114,8 +114,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P | |||||||
| github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
| github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | ||||||
| github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= | ||||||
| github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | ||||||
| github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| @@ -142,8 +142,8 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL | |||||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= | golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= | ||||||
| golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= | golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -158,8 +158,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= | golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= | ||||||
| golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| @@ -198,8 +198,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD | |||||||
| google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= | ||||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||||
| google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= | ||||||
| google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= | ||||||
| gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| 	go.etcd.io/bbolt v1.3.8 | 	go.etcd.io/bbolt v1.3.9 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -6,10 +6,11 @@ github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= | |||||||
| github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= | go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= | ||||||
| go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= | go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= | ||||||
|  | golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= | ||||||
| golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= | golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= | ||||||
| golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								cloudflarekv/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								cloudflarekv/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | index.ts | ||||||
|  | wrangler.toml | ||||||
							
								
								
									
										114
									
								
								cloudflarekv/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								cloudflarekv/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | |||||||
|  | --- | ||||||
|  | id: cloudflarekv | ||||||
|  | title: Cloudflare KV | ||||||
|  | --- | ||||||
|  |  | ||||||
|  |  | ||||||
|  | [](https://gofiber.io/discord) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | A Cloudflare KV storage driver using [cloudflare/cloudflare-go](https://github.com/cloudflare/cloudflare-go). | ||||||
|  |  | ||||||
|  | **Note: Requires Go 1.21 and above** | ||||||
|  |  | ||||||
|  | ### Table of Contents | ||||||
|  |  | ||||||
|  | - [Signatures](#signatures) | ||||||
|  | - [Installation](#installation) | ||||||
|  | - [Examples](#examples) | ||||||
|  | - [Config](#config) | ||||||
|  | - [Default Config](#default-config) | ||||||
|  |  | ||||||
|  | ### Signatures | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | func New(config ...Config) Storage | ||||||
|  | func (s *Storage) Get(key string) ([]byte, error) | ||||||
|  | func (s *Storage) Set(key string, val []byte, exp time.Duration) error | ||||||
|  | func (s *Storage) Delete(key string) error | ||||||
|  | func (s *Storage) Reset() error | ||||||
|  | func (s *Storage) Close() error | ||||||
|  | func (s *Storage) Conn() *cloudflare.API | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Installation | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | go mod init github.com/<user>/<repo> | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | And then install the Cloudflare KV implementation: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | go get github.com/gofiber/storage/cloudflarekv | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Examples | ||||||
|  |  | ||||||
|  | Import the storage package. | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | import "github.com/gofiber/storage/cloudflarekv" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | You can use the following methods to create storage. The Key must be an API Token generated with at least `Account.Workers KV Storage` permission. Check the [Create API Token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) documentation to generate one. | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | // Initialize default config | ||||||
|  | store := cloudflarekv.New() | ||||||
|  |  | ||||||
|  | store := cloudflarekv.New(cloudflarekv.Config{ | ||||||
|  |     Key: "", | ||||||
|  |     Email: "", | ||||||
|  |     AccountID: "fiber", | ||||||
|  |     NamespaceID: "fiber", | ||||||
|  |     Reset: false, | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Config | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | type Config struct { | ||||||
|  |  | ||||||
|  | 	// Cloudflare Auth Token | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	Key string | ||||||
|  |  | ||||||
|  | 	// Cloudflare Email | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	Email string | ||||||
|  |  | ||||||
|  | 	// Account id | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "fiber" | ||||||
|  | 	AccountID string | ||||||
|  |  | ||||||
|  | 	// Namespace id | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "fiber" | ||||||
|  | 	NamespaceID string | ||||||
|  |  | ||||||
|  | 	// Reset clears any existing keys in existing Table | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is false | ||||||
|  | 	Reset bool | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Default Config | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | var ConfigDefault = Config{ | ||||||
|  | 	Key:         "", | ||||||
|  | 	Email:       "", | ||||||
|  | 	AccountID:   "fiber", | ||||||
|  | 	NamespaceID: "fiber", | ||||||
|  | 	Reset:       false, | ||||||
|  | } | ||||||
|  | ``` | ||||||
							
								
								
									
										149
									
								
								cloudflarekv/cloudflarekv.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								cloudflarekv/cloudflarekv.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | |||||||
|  | package cloudflarekv | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 	"log" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/cloudflare/cloudflare-go" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type APIInterface interface { | ||||||
|  | 	DeleteWorkersKVEntries(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.DeleteWorkersKVEntriesParams) (cloudflare.Response, error) | ||||||
|  | 	DeleteWorkersKVEntry(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.DeleteWorkersKVEntryParams) (cloudflare.Response, error) | ||||||
|  | 	GetWorkersKV(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.GetWorkersKVParams) ([]byte, error) | ||||||
|  | 	ListWorkersKVKeys(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkersKVsParams) (cloudflare.ListStorageKeysResponse, error) | ||||||
|  | 	WriteWorkersKVEntry(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.WriteWorkersKVEntryParams) (cloudflare.Response, error) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type Storage struct { | ||||||
|  | 	api         APIInterface | ||||||
|  | 	email       string | ||||||
|  | 	accountID   string | ||||||
|  | 	namespaceID string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func New(config ...Config) *Storage { | ||||||
|  | 	cfg := configDefault(config...) | ||||||
|  | 	if cfg.Key == "test" { | ||||||
|  | 		api := &TestModule{ | ||||||
|  | 			baseUrl: "http://localhost:8787", | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		storage := &Storage{ | ||||||
|  | 			api:         api, | ||||||
|  | 			email:       "example@cloudflare.org", | ||||||
|  | 			accountID:   "dummy-ID", | ||||||
|  | 			namespaceID: "dummy-ID", | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		return storage | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	api, err := cloudflare.NewWithAPIToken(cfg.Key) | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Panicf("error with cloudflare api initialization: %v", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	storage := &Storage{ | ||||||
|  | 		api:         api, | ||||||
|  | 		email:       cfg.Email, | ||||||
|  | 		accountID:   cfg.AccountID, | ||||||
|  | 		namespaceID: cfg.NamespaceID, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return storage | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Get(key string) ([]byte, error) { | ||||||
|  | 	resp, err := s.api.GetWorkersKV(context.Background(), cloudflare.AccountIdentifier(s.accountID), cloudflare.GetWorkersKVParams{NamespaceID: s.namespaceID, Key: key}) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Printf("Error occur in GetWorkersKV: %v", err) | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return resp, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | ||||||
|  | 	_, err := s.api.WriteWorkersKVEntry(context.Background(), cloudflare.AccountIdentifier(s.accountID), cloudflare.WriteWorkersKVEntryParams{ | ||||||
|  | 		NamespaceID: s.namespaceID, | ||||||
|  | 		Key:         key, | ||||||
|  | 		Value:       val, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Printf("Error occur in WriteWorkersKVEntry: %v", err) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Delete(key string) error { | ||||||
|  | 	_, err := s.api.DeleteWorkersKVEntry(context.Background(), cloudflare.AccountIdentifier(s.accountID), cloudflare.DeleteWorkersKVEntryParams{ | ||||||
|  | 		NamespaceID: s.namespaceID, | ||||||
|  | 		Key:         key, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Printf("Error occur in DeleteWorkersKVEntry: %v", err) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Reset() error { | ||||||
|  | 	var ( | ||||||
|  | 		cursor string | ||||||
|  | 		keys   []string | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	for { | ||||||
|  | 		resp, err := s.api.ListWorkersKVKeys(context.Background(), cloudflare.AccountIdentifier(s.accountID), cloudflare.ListWorkersKVsParams{ | ||||||
|  | 			NamespaceID: s.namespaceID, | ||||||
|  | 			Cursor:      cursor, | ||||||
|  | 		}) | ||||||
|  |  | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Printf("Error occur in ListWorkersKVKeys: %v", err) | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		keys = make([]string, len(resp.Result)) | ||||||
|  |  | ||||||
|  | 		for _, element := range resp.Result { | ||||||
|  | 			name := element.Name | ||||||
|  | 			keys = append(keys, name) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		_, err = s.api.DeleteWorkersKVEntries(context.Background(), cloudflare.AccountIdentifier(s.accountID), cloudflare.DeleteWorkersKVEntriesParams{ | ||||||
|  | 			NamespaceID: s.namespaceID, | ||||||
|  | 			Keys:        keys, | ||||||
|  | 		}) | ||||||
|  |  | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Printf("Error occur in DeleteWorker: %v", err) | ||||||
|  | 			return err | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if len(resp.Cursor) == 0 { | ||||||
|  | 			log.Println("No keys left in the namespace") | ||||||
|  | 			break | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		cursor = resp.Cursor | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Close() error { | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *Storage) Conn() APIInterface { | ||||||
|  | 	return s.api | ||||||
|  | } | ||||||
							
								
								
									
										209
									
								
								cloudflarekv/cloudflarekv_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								cloudflarekv/cloudflarekv_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,209 @@ | |||||||
|  | package cloudflarekv | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"os" | ||||||
|  | 	"testing" | ||||||
|  |  | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func TestMain(m *testing.M) { | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	code := m.Run() | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | 	os.Exit(code) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_CloudflareKV_Get(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "john" | ||||||
|  | 		val = []byte("doe") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Set(key, val, 0) | ||||||
|  |  | ||||||
|  | 	result, err := testStore.Get(key) | ||||||
|  |  | ||||||
|  | 	for i := 0; i < 2; i++ { | ||||||
|  | 		result, err = testStore.Get(key) | ||||||
|  | 		if bytes.NewBuffer(result).String() == "" { | ||||||
|  | 			_ = testStore.Set(key, val, 0) | ||||||
|  | 		} else { | ||||||
|  | 			break | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	require.Equal(t, bytes.NewBuffer(val).String(), bytes.NewBuffer(result).String()) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_CloudflareKV_Set(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "john" | ||||||
|  | 		val = []byte("doe") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStore.Set(key, val, 0) | ||||||
|  |  | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_CloudflareKV_Delete(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "john" | ||||||
|  | 		val = []byte("doe") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStore.Set(key, val, 0) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	err = testStore.Delete(key) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_CloudflareKV_Reset(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	err := testStore.Reset() | ||||||
|  |  | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  | func Test_CloudflareKV_Close(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	require.Nil(t, testStore.Close()) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_CloudflareKV_Conn(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	require.NotNil(t, testStore.Conn()) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Benchmark_CloudflareKV_Set(b *testing.B) { | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	b.ReportAllocs() | ||||||
|  | 	b.ResetTimer() | ||||||
|  |  | ||||||
|  | 	var err error | ||||||
|  | 	for i := 0; i < b.N; i++ { | ||||||
|  | 		err = testStore.Set("john", []byte("doe"), 0) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	require.NoError(b, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Benchmark_CloudflareKV_Get(b *testing.B) { | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	err := testStore.Set("john", []byte("doe"), 0) | ||||||
|  | 	require.NoError(b, err) | ||||||
|  |  | ||||||
|  | 	b.ReportAllocs() | ||||||
|  | 	b.ResetTimer() | ||||||
|  |  | ||||||
|  | 	for i := 0; i < b.N; i++ { | ||||||
|  | 		_, err = testStore.Get("john") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	require.NoError(b, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Benchmark_CloudflareKV_SetAndDelete(b *testing.B) { | ||||||
|  |  | ||||||
|  | 	var testStore *Storage | ||||||
|  |  | ||||||
|  | 	testStore = New(Config{ | ||||||
|  | 		Key: "test", | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	b.ReportAllocs() | ||||||
|  | 	b.ResetTimer() | ||||||
|  |  | ||||||
|  | 	var err error | ||||||
|  | 	for i := 0; i < b.N; i++ { | ||||||
|  | 		_ = testStore.Set("john", []byte("doe"), 0) | ||||||
|  | 		err = testStore.Delete("john") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	require.NoError(b, err) | ||||||
|  |  | ||||||
|  | 	_ = testStore.Close() | ||||||
|  | } | ||||||
							
								
								
									
										66
									
								
								cloudflarekv/config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								cloudflarekv/config.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,66 @@ | |||||||
|  | package cloudflarekv | ||||||
|  |  | ||||||
|  | // Config defines the config for storage. | ||||||
|  | type Config struct { | ||||||
|  |  | ||||||
|  | 	// Cloudflare Auth Token | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	Key string | ||||||
|  |  | ||||||
|  | 	// Cloudflare Email | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	Email string | ||||||
|  |  | ||||||
|  | 	// Account id | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "fiber" | ||||||
|  | 	AccountID string | ||||||
|  |  | ||||||
|  | 	// Namespace id | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "fiber" | ||||||
|  | 	NamespaceID string | ||||||
|  |  | ||||||
|  | 	// Reset clears any existing keys in existing Table | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is false | ||||||
|  | 	Reset bool | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ConfigDefault is the default config | ||||||
|  | var ConfigDefault = Config{ | ||||||
|  | 	Key:         "", | ||||||
|  | 	Email:       "", | ||||||
|  | 	AccountID:   "fiber", | ||||||
|  | 	NamespaceID: "fiber", | ||||||
|  | 	Reset:       false, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Helper function to set default values | ||||||
|  | func configDefault(config ...Config) Config { | ||||||
|  | 	// Return default config if nothing provided | ||||||
|  | 	if len(config) < 1 { | ||||||
|  | 		return ConfigDefault | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Override default config | ||||||
|  | 	cfg := config[0] | ||||||
|  |  | ||||||
|  | 	// Set default values | ||||||
|  | 	if cfg.Key == "" { | ||||||
|  | 		cfg.Key = ConfigDefault.Key | ||||||
|  | 	} | ||||||
|  | 	if cfg.Email == "" { | ||||||
|  | 		cfg.Email = ConfigDefault.Email | ||||||
|  | 	} | ||||||
|  | 	if cfg.AccountID == "" { | ||||||
|  | 		cfg.AccountID = ConfigDefault.AccountID | ||||||
|  | 	} | ||||||
|  | 	if cfg.NamespaceID == "" { | ||||||
|  | 		cfg.NamespaceID = ConfigDefault.NamespaceID | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return cfg | ||||||
|  | } | ||||||
							
								
								
									
										22
									
								
								cloudflarekv/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								cloudflarekv/go.mod
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | module github.com/gofiber/storage/cloudflarekv | ||||||
|  |  | ||||||
|  | go 1.21 | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/cloudflare/cloudflare-go v0.97.0 | ||||||
|  | 	github.com/stretchr/testify v1.9.0 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
|  | 	github.com/goccy/go-json v0.10.3 // indirect | ||||||
|  | 	github.com/google/go-querystring v1.1.0 // indirect | ||||||
|  | 	github.com/hashicorp/go-cleanhttp v0.5.2 // indirect | ||||||
|  | 	github.com/hashicorp/go-retryablehttp v0.7.7 // indirect | ||||||
|  | 	github.com/kr/text v0.2.0 // indirect | ||||||
|  | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
|  | 	golang.org/x/net v0.25.0 // indirect | ||||||
|  | 	golang.org/x/text v0.15.0 // indirect | ||||||
|  | 	golang.org/x/time v0.5.0 // indirect | ||||||
|  | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
|  | ) | ||||||
							
								
								
									
										48
									
								
								cloudflarekv/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								cloudflarekv/go.sum
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | github.com/cloudflare/cloudflare-go v0.97.0 h1:feZRGiRF1EbljnNIYdt8014FnOLtC3CCvgkLXu915ks= | ||||||
|  | github.com/cloudflare/cloudflare-go v0.97.0/go.mod h1:JXRwuTfHpe5xFg8xytc2w0XC6LcrFsBVMS4WlVaiGg8= | ||||||
|  | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||||
|  | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
|  | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
|  | github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= | ||||||
|  | github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= | ||||||
|  | github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= | ||||||
|  | github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= | ||||||
|  | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | ||||||
|  | github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= | ||||||
|  | github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||||
|  | github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= | ||||||
|  | github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= | ||||||
|  | github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= | ||||||
|  | github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= | ||||||
|  | github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k= | ||||||
|  | github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= | ||||||
|  | github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= | ||||||
|  | github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= | ||||||
|  | github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= | ||||||
|  | github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= | ||||||
|  | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||||
|  | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||||
|  | github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= | ||||||
|  | github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= | ||||||
|  | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= | ||||||
|  | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= | ||||||
|  | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
|  | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
|  | github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= | ||||||
|  | github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= | ||||||
|  | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
|  | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
|  | golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= | ||||||
|  | golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= | ||||||
|  | golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= | ||||||
|  | golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
|  | golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= | ||||||
|  | golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
|  | golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= | ||||||
|  | golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= | ||||||
|  | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
|  | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|  | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||||||
|  | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | ||||||
|  | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|  | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
							
								
								
									
										251
									
								
								cloudflarekv/test_module.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										251
									
								
								cloudflarekv/test_module.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,251 @@ | |||||||
|  | package cloudflarekv | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"context" | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"fmt" | ||||||
|  | 	"io" | ||||||
|  | 	"log" | ||||||
|  | 	"net/http" | ||||||
|  |  | ||||||
|  | 	"github.com/cloudflare/cloudflare-go" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type getWorkersKVBody struct { | ||||||
|  | 	Key string `json:"key"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type writeWorkersKVBody struct { | ||||||
|  | 	Key string `json:"key"` | ||||||
|  | 	Val string `json:"val"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type deleteworkerskvpairbykeyBody struct { | ||||||
|  | 	Key string `json:"key"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type listworkerskvkeysBody struct { | ||||||
|  | 	Limit  string `json:"limit"` | ||||||
|  | 	Prefix string `json:"prefix"` | ||||||
|  | 	Cursor string `json:"cursor"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type deleteworkerskventriesBody struct { | ||||||
|  | 	Keys []string `json:"keys"` | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type TestModule struct { | ||||||
|  | 	baseUrl string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (t *TestModule) GetWorkersKV(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.GetWorkersKVParams) ([]byte, error) { | ||||||
|  |  | ||||||
|  | 	client := &http.Client{} | ||||||
|  |  | ||||||
|  | 	jsonBody := getWorkersKVBody{ | ||||||
|  | 		Key: params.Key, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	marshalledBody, err := json.Marshal(jsonBody) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error in marshalling") | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req, err := http.NewRequest(http.MethodPost, t.baseUrl+"/getworkerskvvaluebykey", bytes.NewReader(marshalledBody)) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /getworkerskvvaluebykey > making http call") | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	resp, err := client.Do(req) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /getworkerskvvaluebykey > operating http call") | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  |  | ||||||
|  | 	respBody, err := io.ReadAll(resp.Body) | ||||||
|  | 	if err != nil { | ||||||
|  | 		str := string(respBody) | ||||||
|  | 		println(str) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return respBody, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (t *TestModule) WriteWorkersKVEntry(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.WriteWorkersKVEntryParams) (cloudflare.Response, error) { | ||||||
|  |  | ||||||
|  | 	client := &http.Client{} | ||||||
|  |  | ||||||
|  | 	jsonBody := writeWorkersKVBody{ | ||||||
|  | 		Key: params.Key, | ||||||
|  | 		Val: string(params.Value), | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	marshalledBody, err := json.Marshal(jsonBody) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error in marshalling") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req, err := http.NewRequest(http.MethodPost, t.baseUrl+"/writeworkerskvkeyvaluepair", bytes.NewReader(marshalledBody)) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /writeworkerskvkeyvaluepair > making http call") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req.Header.Add("Content-Type", "application/json") | ||||||
|  |  | ||||||
|  | 	resp, err := client.Do(req) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /writeworkerskvkeyvaluepair > operating http call") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  |  | ||||||
|  | 	return cloudflare.Response{ | ||||||
|  | 		Success: true, | ||||||
|  | 	}, nil | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (t *TestModule) DeleteWorkersKVEntry(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.DeleteWorkersKVEntryParams) (cloudflare.Response, error) { | ||||||
|  |  | ||||||
|  | 	client := &http.Client{} | ||||||
|  |  | ||||||
|  | 	jsonBody := deleteworkerskvpairbykeyBody{ | ||||||
|  | 		Key: params.Key, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	marshalledBody, err := json.Marshal(jsonBody) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error in marshalling") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req, err := http.NewRequest(http.MethodDelete, t.baseUrl+"/deleteworkerskvpairbykey", bytes.NewReader(marshalledBody)) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /deleteworkerskvpairbykey > making http call") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	resp, err := client.Do(req) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /deleteworkerskvpairbykey > operating http call") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  |  | ||||||
|  | 	return cloudflare.Response{ | ||||||
|  | 		Success: true, | ||||||
|  | 	}, nil | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (t *TestModule) ListWorkersKVKeys(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.ListWorkersKVsParams) (cloudflare.ListStorageKeysResponse, error) { | ||||||
|  |  | ||||||
|  | 	client := &http.Client{} | ||||||
|  |  | ||||||
|  | 	jsonBody := listworkerskvkeysBody{ | ||||||
|  | 		Limit:  fmt.Sprint(params.Limit), | ||||||
|  | 		Prefix: params.Prefix, | ||||||
|  | 		Cursor: params.Cursor, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	marshalledBody, err := json.Marshal(jsonBody) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error in marshalling") | ||||||
|  | 		return cloudflare.ListStorageKeysResponse{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req, err := http.NewRequest(http.MethodPost, t.baseUrl+"/listworkerskvkeys", bytes.NewReader(marshalledBody)) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /listworkerskvkeys > making http call") | ||||||
|  | 		return cloudflare.ListStorageKeysResponse{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req.Header.Add("Content-Type", "application/json") | ||||||
|  |  | ||||||
|  | 	resp, err := client.Do(req) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /listworkerskvkeys > operating http call") | ||||||
|  | 		return cloudflare.ListStorageKeysResponse{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  |  | ||||||
|  | 	result := []cloudflare.StorageKey{} | ||||||
|  |  | ||||||
|  | 	respBody, err := io.ReadAll(resp.Body) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		str := string(respBody) | ||||||
|  | 		println(str) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if err := json.Unmarshal(respBody, &result); err != nil { | ||||||
|  | 		log.Println("Error with parsing response body") | ||||||
|  | 		return cloudflare.ListStorageKeysResponse{}, nil | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return cloudflare.ListStorageKeysResponse{ | ||||||
|  | 		Result: result, | ||||||
|  | 	}, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (t *TestModule) DeleteWorkersKVEntries(ctx context.Context, rc *cloudflare.ResourceContainer, params cloudflare.DeleteWorkersKVEntriesParams) (cloudflare.Response, error) { | ||||||
|  |  | ||||||
|  | 	client := &http.Client{} | ||||||
|  |  | ||||||
|  | 	jsonBody := deleteworkerskventriesBody{ | ||||||
|  | 		Keys: params.Keys, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	marshalledBody, err := json.Marshal(jsonBody) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error in marshalling") | ||||||
|  | 		return cloudflare.Response{}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req, err := http.NewRequest(http.MethodDelete, t.baseUrl+"/deleteworkerskventries", bytes.NewReader(marshalledBody)) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occur in /deleteworkerskventries > making new request") | ||||||
|  | 		return cloudflare.Response{ | ||||||
|  | 			Errors: []cloudflare.ResponseInfo{}, | ||||||
|  | 		}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	req.Header.Add("Content-Type", "application/json") | ||||||
|  |  | ||||||
|  | 	_, err = client.Do(req) | ||||||
|  |  | ||||||
|  | 	if err != nil { | ||||||
|  | 		log.Println("Error occuer in /deleteworkerskventries > operating http call") | ||||||
|  | 		return cloudflare.Response{ | ||||||
|  | 			Errors: []cloudflare.ResponseInfo{}, | ||||||
|  | 		}, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return cloudflare.Response{ | ||||||
|  | 		Success: true, | ||||||
|  | 	}, nil | ||||||
|  | } | ||||||
| @@ -35,7 +35,7 @@ necessary for the client to operate correctly. | |||||||
| To start a Coherence cluster using Docker, issue the following: | To start a Coherence cluster using Docker, issue the following: | ||||||
|  |  | ||||||
| ```bash | ```bash | ||||||
| docker run -d -p 1408:1408 ghcr.io/oracle/coherence-ce:22.06.5 | docker run -d -p 1408:1408 ghcr.io/oracle/coherence-ce:22.06.7 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| See the documentation [here](https://pkg.go.dev/github.com/oracle/coherence-go-client/coherence#hdr-Obtaining_a_Session) on connection options | See the documentation [here](https://pkg.go.dev/github.com/oracle/coherence-go-client/coherence#hdr-Obtaining_a_Session) on connection options | ||||||
| @@ -52,9 +52,10 @@ You can use the following possibilities to create a storage: | |||||||
| // Initialize default config, to connect to localhost:1408 using plain text | // Initialize default config, to connect to localhost:1408 using plain text | ||||||
| store, err := coherence.New() | store, err := coherence.New() | ||||||
|  |  | ||||||
| // Initialize custom config to connect to a different host/port and use plaint ext. | // Initialize custom config to connect to a different host/port and use plain text and expiry of 5 minutes. | ||||||
| store, err := coherence.New(coherence.Config{ | store, err := coherence.New(coherence.Config{ | ||||||
|     Address: "my-host:myport", |     Address: "my-host:myport", | ||||||
|  |     Expiration: time.Duration(300) * time.Second, // 5 minutes | ||||||
| }) | }) | ||||||
|  |  | ||||||
| // Initialize to connect with TLS enabled with your own tls.Config | // Initialize to connect with TLS enabled with your own tls.Config | ||||||
| @@ -66,13 +67,38 @@ store, err := coherence.New(coherence.Config{ | |||||||
| }) | }) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| > Note: If you create two stores using `coherence.New()` they will effectivity be idential. | > Note: If you create two stores using `coherence.New()` they will effectivity be identical. | ||||||
| > If you wish to have two separate stores, then you can use: | > If you wish to have two separate stores, then you can use: | ||||||
| > ```go | > ```go | ||||||
| > store1, err := coherence.New(Config{ScopeName: "scope1"}) | > store1, err := coherence.New(Config{ScopeName: "scope1"}) | ||||||
| > store2, err := coherence.New(Config{ScopeName: "scope2"}) | > store2, err := coherence.New(Config{ScopeName: "scope2"}) | ||||||
| > ``` | > ``` | ||||||
|  |  | ||||||
|  | **Near Caches** | ||||||
|  |  | ||||||
|  | The latest version of the Coherence Go client introduces near cache support | ||||||
|  | to cache frequently accessed data in the Go client to avoid sending requests across the network. | ||||||
|  |  | ||||||
|  | This is particularly useful if you are using sticky sessions via a LBR as this will cache | ||||||
|  | the session in the Go process and the `Get()` operations will be much quicker. | ||||||
|  |  | ||||||
|  | When the session is expired on the server it will automatically be removed from the near cache. | ||||||
|  |  | ||||||
|  | To enable this for you session, you can set the `NearCacheTimeout` to a duration less than the expiry. | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | // Initialize default config, to connect to localhost:1408 using plain text | ||||||
|  | store, err := coherence.New() | ||||||
|  |  | ||||||
|  | // Use plain text with default expiry of 5 minutes, and a near cache expiry of 2 minutes | ||||||
|  | store, err := coherence.New(coherence.Config{ | ||||||
|  |     Address: "my-host:myport", | ||||||
|  |     Expiration: time.Duration(300) * time.Second,       // 5 minutes | ||||||
|  |     NearCacheTimeout: time.Duration(120) * time.Second, // 2 minutes | ||||||
|  | }) | ||||||
|  | ``` | ||||||
|  | > Note: You must ensure your near cache timeout is less that the session timeout. | ||||||
|  |  | ||||||
| ### Config | ### Config | ||||||
|  |  | ||||||
| ```go | ```go | ||||||
| @@ -92,6 +118,11 @@ type Config struct { | |||||||
|  |  | ||||||
|     // TLSConfig specifies tls.Config to use when connecting, if nil then plain text is used  |     // TLSConfig specifies tls.Config to use when connecting, if nil then plain text is used  | ||||||
|     TLSConfig *tls.Config |     TLSConfig *tls.Config | ||||||
|  |  | ||||||
|  |     // NearCacheTimeout defines the timeout for a near cache. Is this is set, then a near cache | ||||||
|  |     // with the timeout is created. Note: this must be less than the session timeout or any timeout you specify  | ||||||
|  |     // when using Set(). | ||||||
|  |     NearCacheTimeout time.Duration | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| @@ -99,8 +130,9 @@ type Config struct { | |||||||
| ```go | ```go | ||||||
| var DefaultConfig = Config{ | var DefaultConfig = Config{ | ||||||
|     Address:   "localhost:1408", |     Address:   "localhost:1408", | ||||||
|     Timeout:   time.Duration(30) * time.Millisecond, |     Timeout:   time.Duration(120) * time.Seconds, | ||||||
|     ScopeName: defaultScopeName, |     ScopeName: defaultScopeName, | ||||||
|     Reset:     false, |     Reset:     false, | ||||||
|  |     NearCacheTimeout: time.Duration(60) * time.Seconds, | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|   | |||||||
| @@ -1,11 +1,12 @@ | |||||||
| package coherence | package coherence | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright © 2023, Oracle and/or its affiliates. |  * Copyright © 2023, 2024 Oracle and/or its affiliates. | ||||||
|  */ |  */ | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"crypto/tls" | 	"crypto/tls" | ||||||
|  | 	"fmt" | ||||||
| 	coh "github.com/oracle/coherence-go-client/coherence" | 	coh "github.com/oracle/coherence-go-client/coherence" | ||||||
| 	"time" | 	"time" | ||||||
| ) | ) | ||||||
| @@ -39,6 +40,11 @@ type Config struct { | |||||||
|  |  | ||||||
| 	// TLSConfig specifies tls.Config to use when connecting, if nil then plain text is used | 	// TLSConfig specifies tls.Config to use when connecting, if nil then plain text is used | ||||||
| 	TLSConfig *tls.Config | 	TLSConfig *tls.Config | ||||||
|  |  | ||||||
|  | 	// NearCacheTimeout defines the timeout for a near cache. Is this is set, then a near cache | ||||||
|  | 	// with the timeout is created. Note: this must be less than the session timeout or any timeout you specify | ||||||
|  | 	// when using Set(). | ||||||
|  | 	NearCacheTimeout time.Duration | ||||||
| } | } | ||||||
|  |  | ||||||
| // DefaultConfig defines default options. | // DefaultConfig defines default options. | ||||||
| @@ -51,9 +57,10 @@ var DefaultConfig = Config{ | |||||||
|  |  | ||||||
| // New returns a new [Storage] given a [Config]. | // New returns a new [Storage] given a [Config]. | ||||||
| func New(config ...Config) (*Storage, error) { | func New(config ...Config) (*Storage, error) { | ||||||
| 	cfg := setupConfig(config...) | 	var ( | ||||||
|  | 		cfg     = setupConfig(config...) | ||||||
| 	options := make([]func(session *coh.SessionOptions), 0) | 		options = make([]func(session *coh.SessionOptions), 0) | ||||||
|  | 	) | ||||||
|  |  | ||||||
| 	// apply any config values as Coherence options | 	// apply any config values as Coherence options | ||||||
| 	options = append(options, coh.WithAddress(cfg.Address)) | 	options = append(options, coh.WithAddress(cfg.Address)) | ||||||
| @@ -66,13 +73,21 @@ func New(config ...Config) (*Storage, error) { | |||||||
|  |  | ||||||
| 	options = append(options, coh.WithRequestTimeout(cfg.Timeout)) | 	options = append(options, coh.WithRequestTimeout(cfg.Timeout)) | ||||||
|  |  | ||||||
|  | 	// validate near cache options | ||||||
|  | 	if cfg.NearCacheTimeout != 0 { | ||||||
|  | 		if cfg.NearCacheTimeout > cfg.Timeout { | ||||||
|  | 			return nil, fmt.Errorf("you cannot set the near cache timeout (%v) to less than session timeout (%v)", | ||||||
|  | 				cfg.NearCacheTimeout, cfg.Timeout) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	// create the Coherence session | 	// create the Coherence session | ||||||
| 	session, err := coh.NewSession(context.Background(), options...) | 	session, err := coh.NewSession(context.Background(), options...) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	store, err := newCoherenceStorage(session, cfg.ScopeName) | 	store, err := newCoherenceStorage(session, cfg.ScopeName, cfg.NearCacheTimeout) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| @@ -109,8 +124,16 @@ func setupConfig(config ...Config) Config { | |||||||
| } | } | ||||||
|  |  | ||||||
| // newCoherenceStorage returns a new Coherence [Storage]. | // newCoherenceStorage returns a new Coherence [Storage]. | ||||||
| func newCoherenceStorage(session *coh.Session, cacheName string) (*Storage, error) { | func newCoherenceStorage(session *coh.Session, cacheName string, nearCacheTimeout time.Duration) (*Storage, error) { | ||||||
| 	nc, err := coh.GetNamedCache[string, []byte](session, "fiber$"+cacheName) | 	cacheOptions := make([]func(cache *coh.CacheOptions), 0) | ||||||
|  |  | ||||||
|  | 	// configure a near cache if the nearCacheTimeout is set | ||||||
|  | 	if nearCacheTimeout != 0 { | ||||||
|  | 		nearCacheOptions := coh.NearCacheOptions{TTL: nearCacheTimeout} | ||||||
|  | 		cacheOptions = append(cacheOptions, coh.WithNearCache(&nearCacheOptions)) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	nc, err := coh.GetNamedCache[string, []byte](session, "fiber$"+cacheName, cacheOptions...) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| @@ -143,7 +166,7 @@ func (s *Storage) Delete(key string) error { | |||||||
| } | } | ||||||
|  |  | ||||||
| func (s *Storage) Reset() error { | func (s *Storage) Reset() error { | ||||||
| 	return s.namedCache.Clear(s.ctx) | 	return s.namedCache.Truncate(s.ctx) | ||||||
| } | } | ||||||
|  |  | ||||||
| func (s *Storage) Close() error { | func (s *Storage) Close() error { | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package coherence | package coherence | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Copyright © 2023, Oracle and/or its affiliates. |  * Copyright © 2023, 2024 Oracle and/or its affiliates. | ||||||
|  */ |  */ | ||||||
| import ( | import ( | ||||||
| 	"github.com/stretchr/testify/require" | 	"github.com/stretchr/testify/require" | ||||||
| @@ -22,7 +22,8 @@ var testStore *Storage | |||||||
|  |  | ||||||
| func TestMain(m *testing.M) { | func TestMain(m *testing.M) { | ||||||
| 	testStore, _ = New(Config{ | 	testStore, _ = New(Config{ | ||||||
| 		Reset: true, | 		Reset:            true, | ||||||
|  | 		NearCacheTimeout: time.Duration(4) * time.Second, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| 	code := m.Run() | 	code := m.Run() | ||||||
| @@ -102,7 +103,6 @@ func Test_Coherence_Set_With_Expiry(t *testing.T) { | |||||||
| 	val, err = testStore.Get(key1) | 	val, err = testStore.Get(key1) | ||||||
| 	require.NoError(t, err) | 	require.NoError(t, err) | ||||||
| 	require.True(t, len(val) == 0) | 	require.True(t, len(val) == 0) | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
| func Test_Coherence_Get_Missing(t *testing.T) { | func Test_Coherence_Get_Missing(t *testing.T) { | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ module github.com/gofiber/storage/coherence | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/oracle/coherence-go-client v1.0.3 | 	github.com/oracle/coherence-go-client v1.2.2 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -18,9 +18,9 @@ require ( | |||||||
| require ( | require ( | ||||||
| 	github.com/golang/protobuf v1.5.3 // indirect | 	github.com/golang/protobuf v1.5.3 // indirect | ||||||
| 	github.com/google/uuid v1.3.1 // indirect | 	github.com/google/uuid v1.3.1 // indirect | ||||||
| 	golang.org/x/net v0.17.0 // indirect | 	golang.org/x/net v0.23.0 // indirect | ||||||
| 	golang.org/x/sys v0.13.0 // indirect | 	golang.org/x/sys v0.18.0 // indirect | ||||||
| 	golang.org/x/text v0.13.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	google.golang.org/grpc v1.58.3 // indirect | 	google.golang.org/grpc v1.58.3 // indirect | ||||||
| 	google.golang.org/protobuf v1.31.0 // indirect | 	google.golang.org/protobuf v1.33.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -12,18 +12,18 @@ github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | |||||||
| github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||||
| github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||||
| github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= | github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= | ||||||
| github.com/oracle/coherence-go-client v1.0.3 h1:P8Rzgo21BAaJsKzemzMCFY9I27PdKBpr5ZqrHhZ7zPg= | github.com/oracle/coherence-go-client v1.2.2 h1:TGK87WhV8MWeCiZKk0rC+aZbt40p2nRVvxDUbF+2gX8= | ||||||
| github.com/oracle/coherence-go-client v1.0.3/go.mod h1:IAk8etsxzhUK6YaGzbInR1LYlh+1fiG85bGpyvzY0QY= | github.com/oracle/coherence-go-client v1.2.2/go.mod h1:8wy6v4KvDGJv6iIiCD95aU0g8UL34DaKRHs3zqQN/Bg= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= | golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||||
| golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= | golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= | google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= | google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= | ||||||
| @@ -31,8 +31,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= | |||||||
| google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= | google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= | ||||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||||
| google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= | ||||||
| google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= | gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= | ||||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||||
|   | |||||||
| @@ -3,28 +3,27 @@ module github.com/gofiber/storage/couchbase/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/couchbase/gocb/v2 v2.7.1 | 	github.com/couchbase/gocb/v2 v2.8.1 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/couchbase/gocbcore/v10 v10.3.1 // indirect | 	github.com/couchbase/gocbcore/v10 v10.4.1 // indirect | ||||||
| 	github.com/couchbase/gocbcoreps v0.1.1 // indirect | 	github.com/couchbase/gocbcoreps v0.1.2 // indirect | ||||||
| 	github.com/couchbase/goprotostellar v1.0.1 // indirect | 	github.com/couchbase/goprotostellar v1.0.2 // indirect | ||||||
| 	github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect | 	github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/golang/protobuf v1.5.3 // indirect |  | ||||||
| 	github.com/golang/snappy v0.0.4 // indirect | 	github.com/golang/snappy v0.0.4 // indirect | ||||||
| 	github.com/google/uuid v1.5.0 // indirect | 	github.com/google/uuid v1.6.0 // indirect | ||||||
| 	github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect | 	github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	go.uber.org/multierr v1.11.0 // indirect | 	go.uber.org/multierr v1.11.0 // indirect | ||||||
| 	go.uber.org/zap v1.26.0 // indirect | 	go.uber.org/zap v1.27.0 // indirect | ||||||
| 	golang.org/x/net v0.20.0 // indirect | 	golang.org/x/net v0.24.0 // indirect | ||||||
| 	golang.org/x/sys v0.16.0 // indirect | 	golang.org/x/sys v0.19.0 // indirect | ||||||
| 	golang.org/x/text v0.14.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect | ||||||
| 	google.golang.org/grpc v1.60.1 // indirect | 	google.golang.org/grpc v1.63.2 // indirect | ||||||
| 	google.golang.org/protobuf v1.32.0 // indirect | 	google.golang.org/protobuf v1.33.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -4,16 +4,16 @@ github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZx | |||||||
| github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= | github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= | ||||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | ||||||
| github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= | ||||||
| github.com/couchbase/gocb/v2 v2.7.1 h1:Wy5IufpGWDStErhe9bNxXdiHpXf4LIhEpWnR7gJcme0= | github.com/couchbase/gocb/v2 v2.8.1 h1:syeJEVy36IvUy4wyzK/74M4wc4OJ2eWZ1d6yWG31Qno= | ||||||
| github.com/couchbase/gocb/v2 v2.7.1/go.mod h1:tn/jNMSMGwEB2Dd1uHW/aTwScx1lXZqb9oM0zyWeEUg= | github.com/couchbase/gocb/v2 v2.8.1/go.mod h1:xI7kkiz4IhdrhBAAEcKC6R2oqVXxpMIV/ZkmxB+PWgM= | ||||||
| github.com/couchbase/gocbcore/v10 v10.3.1 h1:dx+lub02eDYiQXavtF0EwYMppVUcbjCxAAqa6/nQldg= | github.com/couchbase/gocbcore/v10 v10.4.1 h1:2vZjYRTbSCp1HEcL3iFQv+r4HwiI13VhdnbTku+E/+M= | ||||||
| github.com/couchbase/gocbcore/v10 v10.3.1/go.mod h1:lYQIIk+tzoMcwtwU5GzPbDdqEkwkH3isI2rkSpfL0oM= | github.com/couchbase/gocbcore/v10 v10.4.1/go.mod h1:rulbgUK70EuyRUiLQ0LhQAfSI/Rl+jWws8tTbHzvB6M= | ||||||
| github.com/couchbase/gocbcoreps v0.1.1 h1:H5Q/TVmRqEpcdTDlepwAmLW7cemP9Di6Lp91Qa9oz1A= | github.com/couchbase/gocbcoreps v0.1.2 h1:wlGyyMnkWpCNOlTtfy8UG+8XZsFtqTJtPXz63+QKC58= | ||||||
| github.com/couchbase/gocbcoreps v0.1.1/go.mod h1:tpbHglpBO7DZZmr8XhHe7INj5VJcJ3i+41Ktep9lejI= | github.com/couchbase/gocbcoreps v0.1.2/go.mod h1:33hSdOKnrUVaBqw4+RiqW+2JoD8ylkbvqm89Wg81uXk= | ||||||
| github.com/couchbase/goprotostellar v1.0.1 h1:mtDVYTgnnDSQ3t7mQRG6jl/tOXKOuuFM9PakqC1qhCY= | github.com/couchbase/goprotostellar v1.0.2 h1:yoPbAL9sCtcyZ5e/DcU5PRMOEFaJrF9awXYu3VPfGls= | ||||||
| github.com/couchbase/goprotostellar v1.0.1/go.mod h1:gs1eioLVOHETTFWxDY4v7Q/kRPMgqmX6t/TPcI429ls= | github.com/couchbase/goprotostellar v1.0.2/go.mod h1:5/yqVnZlW2/NSbAWu1hPJCFBEwjxgpe0PFFOlRixnp4= | ||||||
| github.com/couchbaselabs/gocaves/client v0.0.0-20230307083111-cc3960c624b1/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= |  | ||||||
| github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259 h1:2TXy68EGEzIMHOx9UvczR5ApVecwCfQZ0LjkmwMI6g4= | github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259 h1:2TXy68EGEzIMHOx9UvczR5ApVecwCfQZ0LjkmwMI6g4= | ||||||
|  | github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= | ||||||
| github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 h1:2EAfFswAfgYn3a05DVcegiw6DgMgn1Mv5eGz6IHt1Cw= | github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 h1:2EAfFswAfgYn3a05DVcegiw6DgMgn1Mv5eGz6IHt1Cw= | ||||||
| github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131/go.mod h1:o7T431UOfFVHDNvMBUmUxpHnhivwv7BziUao/nMl81E= | github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131/go.mod h1:o7T431UOfFVHDNvMBUmUxpHnhivwv7BziUao/nMl81E= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| @@ -32,17 +32,12 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb | |||||||
| github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||||
| github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||||
| github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= | github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= | ||||||
| github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= |  | ||||||
| github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= |  | ||||||
| github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= |  | ||||||
| github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= | github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= | ||||||
| github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= | ||||||
| github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||||
| github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||||
| github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= |  | ||||||
| github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= |  | ||||||
| github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= | github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= | ||||||
| github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= | github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= | ||||||
| github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | ||||||
| @@ -62,8 +57,8 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd | |||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | ||||||
| github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= |  | ||||||
| github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= | ||||||
|  | github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= | ||||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||||
| @@ -71,19 +66,19 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ | |||||||
| github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
| github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= | ||||||
| github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= | go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= | ||||||
| go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= | go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= | ||||||
| go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= | go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= | ||||||
| go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= | go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= | ||||||
| go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= | go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= | ||||||
| go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= | go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= | ||||||
| go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= | go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= | ||||||
| go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= | go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= | ||||||
| go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= | go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= | ||||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| @@ -102,8 +97,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn | |||||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= | golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= | ||||||
| golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= | golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -116,8 +111,8 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w | |||||||
| golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= | golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= | ||||||
| golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| @@ -140,19 +135,17 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 | |||||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||||
| google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= | google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= | google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= | ||||||
| google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= | google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= | ||||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||||
| google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= | ||||||
| google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= | google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= | ||||||
| google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= | google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= | ||||||
| google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= | google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= | ||||||
| google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= | google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= | ||||||
| google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= | google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= | ||||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= | ||||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
| google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= |  | ||||||
| google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= |  | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|   | |||||||
| @@ -3,27 +3,27 @@ module github.com/gofiber/storage/dynamodb/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2 v1.24.1 | 	github.com/aws/aws-sdk-go-v2 v1.27.2 | ||||||
| 	github.com/aws/aws-sdk-go-v2/config v1.26.6 | 	github.com/aws/aws-sdk-go-v2/config v1.27.17 | ||||||
| 	github.com/aws/aws-sdk-go-v2/credentials v1.16.16 | 	github.com/aws/aws-sdk-go-v2/credentials v1.17.18 | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.12.17 | 	github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.14.0 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/dynamodb v1.27.1 | 	github.com/aws/aws-sdk-go-v2/service/dynamodb v1.32.7 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect | 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.18.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.8.11 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 // indirect | ||||||
| 	github.com/aws/smithy-go v1.19.0 // indirect | 	github.com/aws/smithy-go v1.20.2 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/jmespath/go-jmespath v0.4.0 // indirect | 	github.com/jmespath/go-jmespath v0.4.0 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
|   | |||||||
| @@ -1,41 +1,40 @@ | |||||||
| github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= | github.com/aws/aws-sdk-go-v2 v1.27.2 h1:pLsTXqX93rimAOZG2FIYraDQstZaaGVVN4tNw65v0h8= | ||||||
| github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= | github.com/aws/aws-sdk-go-v2 v1.27.2/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.26.6 h1:Z/7w9bUqlRI0FFQpetVuFYEsjzE3h7fpU6HuGmfPL/o= | github.com/aws/aws-sdk-go-v2/config v1.27.17 h1:L0JZN7Gh7pT6u5CJReKsLhGKparqNKui+mcpxMXjDZc= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.26.6/go.mod h1:uKU6cnDmYCvJ+pxO9S4cWDb2yWWIH5hra+32hVh1MI4= | github.com/aws/aws-sdk-go-v2/config v1.27.17/go.mod h1:MzM3balLZeaafYcPz8IihAmam/aCz6niPQI0FdprxW0= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.16.16 h1:8q6Rliyv0aUFAVtzaldUEcS+T5gbadPbWdV1WcAddK8= | github.com/aws/aws-sdk-go-v2/credentials v1.17.18 h1:D/ALDWqK4JdY3OFgA2thcPO1c9aYTT5STS/CvnkqY1c= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.16.16/go.mod h1:UHVZrdUsv63hPXFo1H7c5fEneoVo9UXiz36QG1GEPi0= | github.com/aws/aws-sdk-go-v2/credentials v1.17.18/go.mod h1:JuitCWq+F5QGUrmMPsk945rop6bB57jdscu+Glozdnc= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.12.17 h1:jPuObStSZU1cGheSslAbF2nA4c/IgeIQA1X9frB60Oc= | github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.14.0 h1:RXHz/z13XYIOCUxjU8erQm25Hhe9LqtXS3dKXsHWRHs= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.12.17/go.mod h1:df3uvEupLM3MkLim3BDkCaRpgAROW7wk41dwNQjw0kA= | github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.14.0/go.mod h1:TH3KH06Ijq3zujEw5Gb2xzBMQ+WjpCcJYkGUclCu2NQ= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 h1:dDgptDO9dxeFkXy+tEgVkzSClHZje/6JkPW5aZyEvrQ= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5/go.mod h1:gjvE2KBUgUQhcv89jqxrIxH9GaKs1JbZzWejj/DaHGA= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 h1:cy8ahBJuhtM8GTTSyOkfy6WVPV1IE+SS5/wfXUYuulw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9/go.mod h1:CZBXGLaJnEZI6EVNcPd7a6B5IC5cA/GkRWtu9fp3S6Y= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 h1:A4SYk07ef04+vxZToz9LWvAXl9LW0NClpPpMsi31cz0= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9/go.mod h1:5jJcHuwDagxN+ErjQ3PU3ocf6Ylc/p9x+BLO/+X4iXw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= | github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= | github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodb v1.27.1 h1:plNo3WtooT2fYnhdyuzzsIJ4QWzcF5AT9oFbnrYC5Dw= | github.com/aws/aws-sdk-go-v2/service/dynamodb v1.32.7 h1:Y0pFOzMrx/c6mVswi99Y9UmBfbBhmFsAzuaJDXTHd0U= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodb v1.27.1/go.mod h1:N5tqZcYMM0N1PN7UQYJNWuGyO886OfnMhf/3MAbqMcI= | github.com/aws/aws-sdk-go-v2/service/dynamodb v1.32.7/go.mod h1:CYR+43Fe0qazBzSTrIwSK7uYdYVf958kwGF+EQgQqhw= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.18.7 h1:srShyROqxzC7p18Ws8mqM2sqxJO/8L3Kpiqf+NboJLg= | github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.9 h1:KYj1jyicyjXmWgMFPMBsgZPYoQ3ZO2HZ0u/rnhJ3fZU= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.18.7/go.mod h1:9efZgg4nJCGRp91MuHhkwd2kvyp7PWLRYYk5WjEQ5ts= | github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.20.9/go.mod h1:PWKopbFpAtnHJ0paxgo+m3+dGKJ2BqeE1qeo5O4T8w0= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.8.11 h1:e9AVb17H4x5FTE5KWIP5M1Du+9M86pS+Hw0lBUdN8EY= | github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.9 h1:497Dd5t4c87GRuKTSNbkVDksiDVbksjfrTyUy1MzR00= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.8.11/go.mod h1:B90ZQJa36xo0ph9HsoteI1+r8owgQH/U1QNfqZQkj1Q= | github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.9/go.mod h1:5OLOnU8LbdA3RXpLmE5AlLnOPb7nfJ2/kNtJBSNdyXM= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 h1:o4T+fKxA3gTMcluBNZZXE9DNaMkJuUL1O3mffCUjoJo= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11/go.mod h1:84oZdJ+VjuJKs9v1UTC9NaodRZRseOXCTgku+vQJWR8= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= | github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 h1:gEYM2GSpr4YNWc6hCd5nod4+d4kd9vWIAWrmGuLdlMw= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= | github.com/aws/aws-sdk-go-v2/service/sso v1.20.11/go.mod h1:gVvwPdPNYehHSP9Rs7q27U1EU+3Or2ZpXvzAYJNh63w= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 h1:QPMJf+Jw8E1l7zqhZmMlFw6w1NmfkfiSK8mS4zOx3BA= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 h1:iXjh3uaH3vsVcnyZX7MqCoCfcyxIrVE9iOQruRaWPrQ= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5/go.mod h1:5ZXesEuy/QcO0WUnt+4sDkxhdXRHTu2yG0uCSH8B6os= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= | github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 h1:M/1u4HBpwLuMtjlxuI2y6HoVLzF5e2mfxHCg7ZVMYmk= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= | github.com/aws/aws-sdk-go-v2/service/sts v1.28.12/go.mod h1:kcfd+eTdEi/40FIbLq4Hif3XMXnl5b/+t/KTfLt9xIk= | ||||||
| github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= | github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= | ||||||
| github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= | github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= |  | ||||||
| github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | ||||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= | github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= | ||||||
| @@ -43,8 +42,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfC | |||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								etcd/go.mod
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								etcd/go.mod
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ module github.com/gofiber/storage/etcd/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| 	go.etcd.io/etcd/client/v3 v3.5.12 | 	go.etcd.io/etcd/client/v3 v3.5.12 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -18,13 +18,13 @@ require ( | |||||||
| 	go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect | 	go.etcd.io/etcd/client/pkg/v3 v3.5.12 // indirect | ||||||
| 	go.uber.org/multierr v1.11.0 // indirect | 	go.uber.org/multierr v1.11.0 // indirect | ||||||
| 	go.uber.org/zap v1.25.0 // indirect | 	go.uber.org/zap v1.25.0 // indirect | ||||||
| 	golang.org/x/net v0.17.0 // indirect | 	golang.org/x/net v0.23.0 // indirect | ||||||
| 	golang.org/x/sys v0.13.0 // indirect | 	golang.org/x/sys v0.18.0 // indirect | ||||||
| 	golang.org/x/text v0.13.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect | 	google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect | ||||||
| 	google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect | 	google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect | ||||||
| 	google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect | 	google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect | ||||||
| 	google.golang.org/grpc v1.59.0 // indirect | 	google.golang.org/grpc v1.59.0 // indirect | ||||||
| 	google.golang.org/protobuf v1.31.0 // indirect | 	google.golang.org/protobuf v1.33.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								etcd/go.sum
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								etcd/go.sum
									
									
									
									
									
								
							| @@ -17,8 +17,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI | |||||||
| github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c= | go.etcd.io/etcd/api/v3 v3.5.12 h1:W4sw5ZoU2Juc9gBWuLk5U6fHfNVyY1WC5g9uiXZio/c= | ||||||
| @@ -41,20 +41,20 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn | |||||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||||||
| golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= | golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||||
| golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= | golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||||||
| golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||||||
| @@ -73,8 +73,8 @@ google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= | |||||||
| google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= | google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= | ||||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||||
| google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= | ||||||
| google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/bradfitz/gomemcache v0.0.0-20230611145640-acc696258285 | 	github.com/bradfitz/gomemcache v0.0.0-20230611145640-acc696258285 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c | |||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -2,7 +2,7 @@ module github.com/gofiber/storage/memory/v2 | |||||||
|  |  | ||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require github.com/stretchr/testify v1.8.4 | require github.com/stretchr/testify v1.9.0 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c | |||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/minio/minio-go/v7 v7.0.66 | 	github.com/minio/minio-go/v7 v7.0.66 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| 	github.com/valyala/bytebufferpool v1.0.0 | 	github.com/valyala/bytebufferpool v1.0.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -22,9 +22,9 @@ require ( | |||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	github.com/rs/xid v1.5.0 // indirect | 	github.com/rs/xid v1.5.0 // indirect | ||||||
| 	github.com/sirupsen/logrus v1.9.3 // indirect | 	github.com/sirupsen/logrus v1.9.3 // indirect | ||||||
| 	golang.org/x/crypto v0.17.0 // indirect | 	golang.org/x/crypto v0.21.0 // indirect | ||||||
| 	golang.org/x/net v0.19.0 // indirect | 	golang.org/x/net v0.23.0 // indirect | ||||||
| 	golang.org/x/sys v0.15.0 // indirect | 	golang.org/x/sys v0.18.0 // indirect | ||||||
| 	golang.org/x/text v0.14.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	gopkg.in/ini.v1 v1.67.0 // indirect | 	gopkg.in/ini.v1 v1.67.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								minio/go.sum
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								minio/go.sum
									
									
									
									
									
								
							| @@ -33,18 +33,18 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs | |||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | ||||||
| github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | ||||||
| golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= | ||||||
| golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= | ||||||
| golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= | golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= | ||||||
| golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= | golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= | ||||||
| golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= | ||||||
| golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
|   | |||||||
							
								
								
									
										171
									
								
								mockstorage/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								mockstorage/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,171 @@ | |||||||
|  | --- | ||||||
|  | id: mockstorage | ||||||
|  | title: MockStorage | ||||||
|  | --- | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | [](https://gofiber.io/discord) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | A mock storage implementation for Fiber. This storage is not persistent and is only used for testing purposes. | ||||||
|  |  | ||||||
|  | **Note: Requires Go 1.21 and above** | ||||||
|  |  | ||||||
|  | ## Table of Contents | ||||||
|  | - [Signatures](#signatures) | ||||||
|  | - [Installation](#installation) | ||||||
|  | - [Examples](#examples) | ||||||
|  | - [Config](#config) | ||||||
|  | - [Default Config](#default-config) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Signatures | ||||||
|  |  | ||||||
|  | ### Structs | ||||||
|  |  | ||||||
|  | ```go | ||||||
|  | type Storage struct { | ||||||
|  |     // contains filtered or unexported fields | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type Entry struct { | ||||||
|  |     Value []byte | ||||||
|  |     Exp   time.Time | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type Config struct { | ||||||
|  |     CustomFuncs *CustomFuncs | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type CustomFuncs struct { | ||||||
|  |     GetFunc    func(key string) ([]byte, error) | ||||||
|  |     SetFunc    func(key string, val []byte, exp time.Duration) error | ||||||
|  |     DeleteFunc func(key string) error | ||||||
|  |     ResetFunc  func() error | ||||||
|  |     CloseFunc  func() error | ||||||
|  |     ConnFunc   func() map[string]Entry | ||||||
|  |     KeysFunc   func() ([][]byte, error) | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ### Functions | ||||||
|  | ```go | ||||||
|  | // New creates a new Storage instance. You can optionally pass a Config. | ||||||
|  | func New(config ...Config) *Storage | ||||||
|  |  | ||||||
|  | // Get retrieves the value associated with the given key. | ||||||
|  | func (s *Storage) Get(key string) ([]byte, error) | ||||||
|  |  | ||||||
|  | // Set sets the value for the given key, with an optional expiration duration. | ||||||
|  | func (s *Storage) Set(key string, val []byte, exp time.Duration) error | ||||||
|  |  | ||||||
|  | // Delete removes the value associated with the given key. | ||||||
|  | func (s *Storage) Delete(key string) error | ||||||
|  |  | ||||||
|  | // Reset clears all values from the storage. | ||||||
|  | func (s *Storage) Reset() error | ||||||
|  |  | ||||||
|  | // Close performs any necessary cleanup when the storage is no longer needed. | ||||||
|  | func (s *Storage) Close() error | ||||||
|  |  | ||||||
|  | // Conn returns a copy of the current state of the storage. | ||||||
|  | func (s *Storage) Conn() map[string]Entry | ||||||
|  |  | ||||||
|  | // Keys returns a list of all keys in the storage. | ||||||
|  | func (s *Storage) Keys() ([][]byte, error) | ||||||
|  |  | ||||||
|  | // SetCustomFuncs allows you to set custom functions for the storage operations. | ||||||
|  | func (s *Storage) SetCustomFuncs(custom *CustomFuncs) | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Installation | ||||||
|  | MockStorage is tested on the 2 last [Go versions](https://golang.org/dl/) with support for modules. So make sure to initialize one first if you didn't do that yet: | ||||||
|  | ```bash | ||||||
|  | go mod init github.com/<user>/<repo> | ||||||
|  | ``` | ||||||
|  | And then install the mockstorage implementation: | ||||||
|  | ```bash | ||||||
|  | go get github.com/gofiber/storage/mockstorage | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Examples | ||||||
|  | Import the storage package. | ||||||
|  | ```go | ||||||
|  | import "github.com/gofiber/storage/mockstorage" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | You can use the following possibilities to create a storage: | ||||||
|  | ```go | ||||||
|  | // Initialize default config | ||||||
|  | store := mockstorage.New() | ||||||
|  |  | ||||||
|  | // Set a value in the storage. | ||||||
|  | err := store.Set("key1", []byte("value1"), 0) | ||||||
|  | if err != nil { | ||||||
|  |     // handle error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Get a value from the storage. | ||||||
|  | val, err := store.Get("key1") | ||||||
|  | if err != nil { | ||||||
|  |     // handle error | ||||||
|  | } | ||||||
|  | fmt.Println(string(val)) // prints "value1" | ||||||
|  |  | ||||||
|  | // Delete a value from the storage. | ||||||
|  | err = store.Delete("key1") | ||||||
|  | if err != nil { | ||||||
|  | 	// handle error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Mocking storage operations in tests: | ||||||
|  | func TestMyFunction(t *testing.T) { | ||||||
|  |     // Create a new instance of MockStorage | ||||||
|  |     store := mockstorage.New() | ||||||
|  |  | ||||||
|  |     // Mock the Set function | ||||||
|  |     store.SetCustomFuncs(&mockstorage.CustomFuncs{ | ||||||
|  |         Set: func(key string, val []byte, exp time.Duration) error { | ||||||
|  |             if key == "expectedKey" && string(val) == "expectedValue" { | ||||||
|  |                 return nil | ||||||
|  |             } | ||||||
|  |             return errors.New("unexpected key or value") | ||||||
|  |         }, | ||||||
|  |     }) | ||||||
|  |  | ||||||
|  |     // Call the function you want to test, which should call store.Set | ||||||
|  |     err := MyFunction(store) | ||||||
|  |  | ||||||
|  |     // Check that the function behaved as expected | ||||||
|  |     if err != nil { | ||||||
|  |         t.Errorf("MyFunction returned an error: %v", err) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | > **Note:** In the `mockstorage` package, expiration of data is not handled automatically in the background. The data is only marked as expired and removed when you attempt to `Get()` it after its expiration time. If you're using a custom `Get()` function or accessing the data directly using the `Conn()` function, expired data will not be removed. Keep this in mind when writing your tests. | ||||||
|  |  | ||||||
|  | ## Config | ||||||
|  | ```go | ||||||
|  | type Config struct { | ||||||
|  | 	CustomFuncs *CustomFuncs | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | ## Default Config | ||||||
|  | ```go | ||||||
|  | var ConfigDefault = Config{ | ||||||
|  | 	CustomFuncs: &CustomFuncs{ | ||||||
|  | 		GetFunc:    nil, | ||||||
|  | 		SetFunc:    nil, | ||||||
|  | 		DeleteFunc: nil, | ||||||
|  | 		ResetFunc:  nil, | ||||||
|  | 		CloseFunc:  nil, | ||||||
|  | 		ConnFunc:   nil, | ||||||
|  | 		KeysFunc:   nil, | ||||||
|  | 	}, | ||||||
|  | } | ||||||
|  | ``` | ||||||
							
								
								
									
										3
									
								
								mockstorage/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								mockstorage/go.mod
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | module github.com/gofiber/storage/mockstorage | ||||||
|  |  | ||||||
|  | go 1.21 | ||||||
							
								
								
									
										0
									
								
								mockstorage/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								mockstorage/go.sum
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										170
									
								
								mockstorage/mockstorage.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								mockstorage/mockstorage.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | |||||||
|  | package mockstorage | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"errors" | ||||||
|  | 	"sync" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // Config defines the config for mock storage. | ||||||
|  | type Config struct { | ||||||
|  | 	CustomFuncs *CustomFuncs | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Storage is the mock storage adapter. | ||||||
|  | type Storage struct { | ||||||
|  | 	mu     sync.RWMutex | ||||||
|  | 	data   map[string]Entry | ||||||
|  | 	custom *CustomFuncs | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Entry struct to hold value and expiration time. | ||||||
|  | type Entry struct { | ||||||
|  | 	Value []byte | ||||||
|  | 	Exp   time.Time | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CustomFuncs allows injecting custom behaviors for testing. | ||||||
|  | type CustomFuncs struct { | ||||||
|  | 	GetFunc    func(key string) ([]byte, error) | ||||||
|  | 	SetFunc    func(key string, val []byte, exp time.Duration) error | ||||||
|  | 	DeleteFunc func(key string) error | ||||||
|  | 	ResetFunc  func() error | ||||||
|  | 	CloseFunc  func() error | ||||||
|  | 	ConnFunc   func() map[string]Entry | ||||||
|  | 	KeysFunc   func() ([][]byte, error) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // New creates a new mock storage with optional configuration. | ||||||
|  | func New(config ...Config) *Storage { | ||||||
|  | 	s := &Storage{ | ||||||
|  | 		data: make(map[string]Entry), | ||||||
|  | 		custom: &CustomFuncs{ | ||||||
|  | 			GetFunc:    nil, | ||||||
|  | 			SetFunc:    nil, | ||||||
|  | 			DeleteFunc: nil, | ||||||
|  | 			ResetFunc:  nil, | ||||||
|  | 			CloseFunc:  nil, | ||||||
|  | 			ConnFunc:   nil, | ||||||
|  | 			KeysFunc:   nil, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// If a config is provided and it has CustomFuncs, use them | ||||||
|  | 	if len(config) > 0 && config[0].CustomFuncs != nil { | ||||||
|  | 		s.custom = config[0].CustomFuncs | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return s | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Get retrieves the value for a given key. | ||||||
|  | func (s *Storage) Get(key string) ([]byte, error) { | ||||||
|  | 	if s.custom.GetFunc != nil { | ||||||
|  | 		return s.custom.GetFunc(key) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.RLock() | ||||||
|  | 	defer s.mu.RUnlock() | ||||||
|  |  | ||||||
|  | 	e, ok := s.data[key] | ||||||
|  | 	if !ok { | ||||||
|  | 		return nil, errors.New("key not found") | ||||||
|  | 	} | ||||||
|  | 	if !e.Exp.IsZero() && time.Now().After(e.Exp) { | ||||||
|  | 		delete(s.data, key) | ||||||
|  | 		return nil, errors.New("key expired") | ||||||
|  | 	} | ||||||
|  | 	return e.Value, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Set sets the value for a given key with an expiration time. | ||||||
|  | func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | ||||||
|  | 	if s.custom.SetFunc != nil { | ||||||
|  | 		return s.custom.SetFunc(key, val, exp) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.Lock() | ||||||
|  | 	defer s.mu.Unlock() | ||||||
|  |  | ||||||
|  | 	var expTime time.Time | ||||||
|  | 	if exp > 0 { | ||||||
|  | 		expTime = time.Now().Add(exp) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.data[key] = Entry{Value: val, Exp: expTime} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Delete removes a key from the storage. | ||||||
|  | func (s *Storage) Delete(key string) error { | ||||||
|  | 	if s.custom.DeleteFunc != nil { | ||||||
|  | 		return s.custom.DeleteFunc(key) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.Lock() | ||||||
|  | 	defer s.mu.Unlock() | ||||||
|  |  | ||||||
|  | 	delete(s.data, key) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Reset clears all keys from the storage. | ||||||
|  | func (s *Storage) Reset() error { | ||||||
|  | 	if s.custom.ResetFunc != nil { | ||||||
|  | 		return s.custom.ResetFunc() | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.Lock() | ||||||
|  | 	defer s.mu.Unlock() | ||||||
|  |  | ||||||
|  | 	s.data = make(map[string]Entry) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Close closes the storage (no-op for mock). | ||||||
|  | func (s *Storage) Close() error { | ||||||
|  | 	if s.custom.CloseFunc != nil { | ||||||
|  | 		return s.custom.CloseFunc() | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// No resources to clean up in mock | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Conn returns the internal data map (for testing purposes). | ||||||
|  | func (s *Storage) Conn() map[string]Entry { | ||||||
|  | 	if s.custom.ConnFunc != nil { | ||||||
|  | 		return s.custom.ConnFunc() | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.RLock() | ||||||
|  | 	defer s.mu.RUnlock() | ||||||
|  |  | ||||||
|  | 	copyData := make(map[string]Entry) | ||||||
|  | 	for k, v := range s.data { | ||||||
|  | 		copyData[k] = Entry{Value: v.Value, Exp: v.Exp} | ||||||
|  | 	} | ||||||
|  | 	return copyData | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Keys returns all keys in the storage. | ||||||
|  | func (s *Storage) Keys() ([][]byte, error) { | ||||||
|  | 	if s.custom.KeysFunc != nil { | ||||||
|  | 		return s.custom.KeysFunc() | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	s.mu.RLock() | ||||||
|  | 	defer s.mu.RUnlock() | ||||||
|  |  | ||||||
|  | 	keys := make([][]byte, 0, len(s.data)) | ||||||
|  | 	for k := range s.data { | ||||||
|  | 		keys = append(keys, []byte(k)) | ||||||
|  | 	} | ||||||
|  | 	return keys, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SetCustomFuncs allows setting custom function implementations. | ||||||
|  | func (s *Storage) SetCustomFuncs(custom *CustomFuncs) { | ||||||
|  | 	s.custom = custom | ||||||
|  | } | ||||||
							
								
								
									
										276
									
								
								mockstorage/mockstorage_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										276
									
								
								mockstorage/mockstorage_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,276 @@ | |||||||
|  | package mockstorage | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"bytes" | ||||||
|  | 	"errors" | ||||||
|  | 	"testing" | ||||||
|  | 	"time" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func TestStorageDefaultBehavior(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	// Test Set and Get | ||||||
|  | 	err := store.Set("key1", []byte("value1"), 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Set() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	val, err := store.Get("key1") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Get() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	if !bytes.Equal(val, []byte("value1")) { | ||||||
|  | 		t.Errorf("Get() = %v, want %v", val, []byte("value1")) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test Delete | ||||||
|  | 	err = store.Delete("key1") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Delete() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = store.Get("key1") | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Get() error = %v, wantErr %v", err, "key not found") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test Reset | ||||||
|  | 	err = store.Set("key2", []byte("value2"), 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Set() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = store.Reset() | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Reset() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = store.Get("key2") | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Get() error = %v, wantErr %v", err, "key not found") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test Expiry | ||||||
|  | 	err = store.Set("key3", []byte("value3"), time.Millisecond*100) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Set() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	time.Sleep(time.Millisecond * 200) | ||||||
|  |  | ||||||
|  | 	_, err = store.Get("key3") | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Get() error = %v, wantErr %v", err, "key expired") | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestStorageConnFunc(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	customFuncs := &CustomFuncs{ | ||||||
|  | 		ConnFunc: func() map[string]Entry { | ||||||
|  | 			return map[string]Entry{ | ||||||
|  | 				"customKey1": {Value: []byte("customValue1"), Exp: time.Time{}}, | ||||||
|  | 				"customKey2": {Value: []byte("customValue2"), Exp: time.Now().Add(1 * time.Hour)}, | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	store.SetCustomFuncs(customFuncs) | ||||||
|  |  | ||||||
|  | 	// Test custom Conn | ||||||
|  | 	conn := store.Conn() | ||||||
|  | 	expectedConn := map[string]Entry{ | ||||||
|  | 		"customKey1": {Value: []byte("customValue1"), Exp: time.Time{}}, | ||||||
|  | 		"customKey2": {Value: []byte("customValue2"), Exp: time.Now().Add(1 * time.Hour)}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for k, v := range expectedConn { | ||||||
|  | 		if val, ok := conn[k]; !ok || !bytes.Equal(val.Value, v.Value) { | ||||||
|  | 			t.Errorf("Conn() = %v, want %v", conn, expectedConn) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestResetFunc(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	customFuncs := &CustomFuncs{ | ||||||
|  | 		ResetFunc: func() error { | ||||||
|  | 			return errors.New("reset error") | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	store.SetCustomFuncs(customFuncs) | ||||||
|  |  | ||||||
|  | 	err := store.Reset() | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Reset() error = %v, wantErr %v", err, "reset error") | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestStorageCloseFunc(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	customFuncs := &CustomFuncs{ | ||||||
|  | 		CloseFunc: func() error { | ||||||
|  | 			return errors.New("close error") | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	store.SetCustomFuncs(customFuncs) | ||||||
|  |  | ||||||
|  | 	err := store.Close() | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Close() error = %v, wantErr %v", err, "close error") | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestStorageKeysFunc(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	customFuncs := &CustomFuncs{ | ||||||
|  | 		KeysFunc: func() ([][]byte, error) { | ||||||
|  | 			return [][]byte{[]byte("customKey1"), []byte("customKey2")}, nil | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	store.SetCustomFuncs(customFuncs) | ||||||
|  |  | ||||||
|  | 	// Test custom Keys | ||||||
|  | 	keys, err := store.Keys() | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Keys() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	expectedKeys := [][]byte{[]byte("customKey1"), []byte("customKey2")} | ||||||
|  | 	if len(keys) != len(expectedKeys) { | ||||||
|  | 		t.Fatalf("Keys() = %v, want %v", keys, expectedKeys) | ||||||
|  | 	} | ||||||
|  | 	for i, key := range expectedKeys { | ||||||
|  | 		if !bytes.Equal(keys[i], key) { | ||||||
|  | 			t.Errorf("Keys() = %v, want %v", keys, expectedKeys) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestStorageCustomBehavior(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  | 	customFuncs := &CustomFuncs{ | ||||||
|  | 		GetFunc: func(key string) ([]byte, error) { | ||||||
|  | 			if key == "customKey" { | ||||||
|  | 				return []byte("customValue"), nil | ||||||
|  | 			} | ||||||
|  | 			return nil, errors.New("custom key not found") | ||||||
|  | 		}, | ||||||
|  | 		SetFunc: func(key string, val []byte, exp time.Duration) error { | ||||||
|  | 			if key == "readonly" { | ||||||
|  | 				return errors.New("cannot set readonly key") | ||||||
|  | 			} | ||||||
|  | 			return nil | ||||||
|  | 		}, | ||||||
|  | 		DeleteFunc: func(key string) error { | ||||||
|  | 			if key == "protectedKey" { | ||||||
|  | 				return errors.New("cannot delete protected key") | ||||||
|  | 			} | ||||||
|  | 			return nil | ||||||
|  | 		}, | ||||||
|  | 		ConnFunc: func() map[string]Entry { | ||||||
|  | 			return map[string]Entry{ | ||||||
|  | 				"customKey1": {Value: []byte("customValue1"), Exp: time.Time{}}, | ||||||
|  | 				"customKey2": {Value: []byte("customValue2"), Exp: time.Now().Add(1 * time.Hour)}, | ||||||
|  | 			} | ||||||
|  | 		}, | ||||||
|  | 		KeysFunc: func() ([][]byte, error) { | ||||||
|  | 			return [][]byte{[]byte("customKey1"), []byte("customKey2")}, nil | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	store.SetCustomFuncs(customFuncs) | ||||||
|  |  | ||||||
|  | 	// Test custom Get | ||||||
|  | 	val, err := store.Get("customKey") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Get() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	if !bytes.Equal(val, []byte("customValue")) { | ||||||
|  | 		t.Errorf("Get() = %v, want %v", val, []byte("customValue")) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	_, err = store.Get("unknownKey") | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Get() error = %v, wantErr %v", err, "custom key not found") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test custom Set | ||||||
|  | 	err = store.Set("readonly", []byte("value"), 0) | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Set() error = %v, wantErr %v", err, "cannot set readonly key") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = store.Set("regularKey", []byte("value"), 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Set() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test custom Delete | ||||||
|  | 	err = store.Delete("protectedKey") | ||||||
|  | 	if err == nil { | ||||||
|  | 		t.Errorf("Delete() error = %v, wantErr %v", err, "cannot delete protected key") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = store.Delete("regularKey") | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Delete() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test custom Conn | ||||||
|  | 	conn := store.Conn() | ||||||
|  | 	expectedConn := map[string]Entry{ | ||||||
|  | 		"customKey1": {Value: []byte("customValue1"), Exp: time.Time{}}, | ||||||
|  | 		"customKey2": {Value: []byte("customValue2"), Exp: time.Now().Add(1 * time.Hour)}, | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for k, v := range expectedConn { | ||||||
|  | 		if val, ok := conn[k]; !ok || !bytes.Equal(val.Value, v.Value) { | ||||||
|  | 			t.Errorf("Conn() = %v, want %v", conn, expectedConn) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test custom Keys | ||||||
|  | 	keys, err := store.Keys() | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Keys() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	expectedKeys := [][]byte{[]byte("customKey1"), []byte("customKey2")} | ||||||
|  | 	if len(keys) != len(expectedKeys) { | ||||||
|  | 		t.Fatalf("Keys() = %v, want %v", keys, expectedKeys) | ||||||
|  | 	} | ||||||
|  | 	for i, key := range expectedKeys { | ||||||
|  | 		if !bytes.Equal(keys[i], key) { | ||||||
|  | 			t.Errorf("Keys() = %v, want %v", keys, expectedKeys) | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func TestStorageConnAndKeys(t *testing.T) { | ||||||
|  | 	store := New() | ||||||
|  |  | ||||||
|  | 	// Test Conn | ||||||
|  | 	err := store.Set("key1", []byte("value1"), 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Set() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	conn := store.Conn() | ||||||
|  | 	if val, ok := conn["key1"]; !ok || !bytes.Equal(val.Value, []byte("value1")) { | ||||||
|  | 		t.Errorf("Conn() = %v, want %v", conn, map[string]Entry{"key1": {Value: []byte("value1"), Exp: time.Time{}}}) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Test Keys | ||||||
|  | 	keys, err := store.Keys() | ||||||
|  | 	if err != nil { | ||||||
|  | 		t.Fatalf("Keys() error = %v, wantErr %v", err, nil) | ||||||
|  | 	} | ||||||
|  | 	if len(keys) != 1 || !bytes.Equal(keys[0], []byte("key1")) { | ||||||
|  | 		t.Errorf("Keys() = %v, want %v", keys, [][]byte{[]byte("key1")}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -3,8 +3,8 @@ module github.com/gofiber/storage/mongodb/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| 	go.mongodb.org/mongo-driver v1.13.1 | 	go.mongodb.org/mongo-driver v1.15.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -1,43 +1,36 @@ | |||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= |  | ||||||
| github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= | github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= | ||||||
| github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | ||||||
| github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= | github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= | ||||||
| github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= |  | ||||||
| github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= |  | ||||||
| github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= | github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= | ||||||
| github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= | github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= | ||||||
| github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= |  | ||||||
| github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= | github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= | ||||||
| github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= | github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= | github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= | ||||||
| github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= | github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= | ||||||
| github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= | github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= | ||||||
| github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= | github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= | ||||||
| github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= | github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= | ||||||
| github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= | github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= | ||||||
| github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= |  | ||||||
| github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= | github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= | ||||||
| github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= | github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= | ||||||
| github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | ||||||
| go.mongodb.org/mongo-driver v1.13.1 h1:YIc7HTYsKndGK4RFzJ3covLz1byri52x0IoMB0Pt/vk= | go.mongodb.org/mongo-driver v1.15.0 h1:rJCKC8eEliewXjZGf0ddURtl7tTVy1TK3bfl0gkUSLc= | ||||||
| go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo= | go.mongodb.org/mongo-driver v1.15.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= | ||||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= |  | ||||||
| golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | ||||||
| golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | ||||||
| golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||||
| golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
| golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= |  | ||||||
| golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -46,7 +39,6 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= | |||||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||||
| golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= |  | ||||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| @@ -54,10 +46,8 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn | |||||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= |  | ||||||
| golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||||
| golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | ||||||
| golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= |  | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| @@ -65,7 +55,6 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn | |||||||
| golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= | ||||||
| golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= | ||||||
| golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= |  | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ module github.com/gofiber/storage/mssql/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/microsoft/go-mssqldb v1.6.0 | 	github.com/microsoft/go-mssqldb v1.7.2 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -12,7 +12,7 @@ require ( | |||||||
| 	github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect | 	github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect | ||||||
| 	github.com/golang-sql/sqlexp v0.1.0 // indirect | 	github.com/golang-sql/sqlexp v0.1.0 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	golang.org/x/crypto v0.17.0 // indirect | 	golang.org/x/crypto v0.18.0 // indirect | ||||||
| 	golang.org/x/text v0.14.0 // indirect | 	golang.org/x/text v0.14.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										34
									
								
								mssql/go.sum
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								mssql/go.sum
									
									
									
									
									
								
							| @@ -1,29 +1,29 @@ | |||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= | github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= | github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= | ||||||
| github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= | github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= | github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= | ||||||
| github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= | github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= | ||||||
| github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= | github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= | ||||||
| github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= | github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= | ||||||
| github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= | github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= | ||||||
| github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||||
| github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= | ||||||
| github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= | github.com/microsoft/go-mssqldb v1.7.2 h1:CHkFJiObW7ItKTJfHo1QX7QBBD1iV+mn1eOyRP3b/PA= | ||||||
| github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= | github.com/microsoft/go-mssqldb v1.7.2/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= | ||||||
| github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= | github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= | ||||||
| golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= | ||||||
| golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= | golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= | ||||||
| golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= | golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= | ||||||
| golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
|   | |||||||
| @@ -3,11 +3,12 @@ module github.com/gofiber/storage/mysql/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/go-sql-driver/mysql v1.7.1 | 	github.com/go-sql-driver/mysql v1.8.1 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|  | 	filippo.io/edwards25519 v1.1.0 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								mysql/go.sum
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								mysql/go.sum
									
									
									
									
									
								
							| @@ -1,11 +1,13 @@ | |||||||
|  | filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= | ||||||
|  | filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= | github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= | ||||||
| github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= | github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -3,9 +3,9 @@ module github.com/gofiber/storage/nats | |||||||
| go 1.20 | go 1.20 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/fiber/v2 v2.52.0 | 	github.com/gofiber/fiber/v2 v2.52.4 | ||||||
| 	github.com/nats-io/nats.go v1.32.0 | 	github.com/nats-io/nats.go v1.35.0 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								nats/go.sum
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								nats/go.sum
									
									
									
									
									
								
							| @@ -1,20 +1,20 @@ | |||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE= | github.com/gofiber/fiber/v2 v2.52.4 h1:P+T+4iK7VaqUsq2PALYEfBBo6bJZ4q3FP8cZ84EggTM= | ||||||
| github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= | github.com/gofiber/fiber/v2 v2.52.4/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= | ||||||
| github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= | github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= | ||||||
| github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= | github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= | ||||||
| github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= | github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= | ||||||
| github.com/nats-io/nats.go v1.32.0 h1:Bx9BZS+aXYlxW08k8Gd3yR2s73pV5XSoAQUyp1Kwvp0= | github.com/nats-io/nats.go v1.35.0 h1:XFNqNM7v5B+MQMKqVGAyHwYhyKb48jrenXNxIU20ULk= | ||||||
| github.com/nats-io/nats.go v1.32.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= | github.com/nats-io/nats.go v1.35.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= | ||||||
| github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= | github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= | ||||||
| github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= | github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= | ||||||
| github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= | github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= | ||||||
| github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= | github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | ||||||
| github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | ||||||
| golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= | golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/cockroachdb/pebble v1.0.0 | 	github.com/cockroachdb/pebble v1.0.0 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -33,6 +33,6 @@ require ( | |||||||
| 	golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect | 	golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect | ||||||
| 	golang.org/x/sys v0.11.0 // indirect | 	golang.org/x/sys v0.11.0 // indirect | ||||||
| 	golang.org/x/text v0.12.0 // indirect | 	golang.org/x/text v0.12.0 // indirect | ||||||
| 	google.golang.org/protobuf v1.31.0 // indirect | 	google.golang.org/protobuf v1.33.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -56,8 +56,8 @@ github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/ | |||||||
| github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= | github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= | ||||||
| github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= | github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= | ||||||
| github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= | github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||||
| @@ -95,8 +95,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T | |||||||
| golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||||||
| google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= | ||||||
| google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= | ||||||
| google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= | google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= | ||||||
| google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -53,7 +53,7 @@ store := postgres.New() | |||||||
|  |  | ||||||
| // Initialize custom config | // Initialize custom config | ||||||
| store := postgres.New(postgres.Config{ | store := postgres.New(postgres.Config{ | ||||||
| 	Db:              dbPool, | 	DB:              dbPool, | ||||||
| 	Table:           "fiber_storage", | 	Table:           "fiber_storage", | ||||||
| 	Reset:           false, | 	Reset:           false, | ||||||
| 	GCInterval:      10 * time.Second, | 	GCInterval:      10 * time.Second, | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ module github.com/gofiber/storage/postgres/v3 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/jackc/pgx/v5 v5.5.3 | 	github.com/jackc/pgx/v5 v5.5.5 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -6,8 +6,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI | |||||||
| github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= | github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= | ||||||
| github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= | github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= | ||||||
| github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= | github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= | ||||||
| github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= | github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw= | ||||||
| github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= | github.com/jackc/pgx/v5 v5.5.5/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= | ||||||
| github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= | github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= | ||||||
| github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= | github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= | ||||||
| github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= | github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= | ||||||
| @@ -20,8 +20,8 @@ github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUz | |||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= | ||||||
| golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= | ||||||
| golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= | golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= | ||||||
|   | |||||||
| @@ -3,8 +3,8 @@ module github.com/gofiber/storage/redis/v3 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/redis/go-redis/v9 v9.4.0 | 	github.com/redis/go-redis/v9 v9.5.3 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -8,10 +8,10 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r | |||||||
| github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= | github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwyKk= | github.com/redis/go-redis/v9 v9.5.3 h1:fOAp1/uJG+ZtcITgZOfYFmTKPE7n4Vclj1wZFgRciUU= | ||||||
| github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= | github.com/redis/go-redis/v9 v9.5.3/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/dgraph-io/ristretto v0.1.1 | 	github.com/dgraph-io/ristretto v0.1.1 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -20,8 +20,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb | |||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= | golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= | ||||||
| golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|   | |||||||
| @@ -3,15 +3,15 @@ module github.com/gofiber/storage/rueidis | |||||||
| go 1.20 | go 1.20 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils/v2 v2.0.0-beta.3 | 	github.com/gofiber/utils/v2 v2.0.0-beta.4 | ||||||
| 	github.com/redis/rueidis v1.0.28 | 	github.com/redis/rueidis v1.0.38 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/google/uuid v1.3.1 // indirect | 	github.com/google/uuid v1.6.0 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
| 	golang.org/x/sys v0.14.0 // indirect | 	golang.org/x/sys v0.19.0 // indirect | ||||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,23 +1,23 @@ | |||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/gofiber/utils/v2 v2.0.0-beta.3 h1:pfOhUDDVjBJpkWv6C5jaDyYLvpui7zQ97zpyFFsUOKw= | github.com/gofiber/utils/v2 v2.0.0-beta.4 h1:1gjbVFFwVwUb9arPcqiB6iEjHBwo7cHsyS41NeIW3co= | ||||||
| github.com/gofiber/utils/v2 v2.0.0-beta.3/go.mod h1:jsl17+MsKfwJjM3ONCE9Rzji/j8XNbwjhUVTjzgfDCo= | github.com/gofiber/utils/v2 v2.0.0-beta.4/go.mod h1:sdRsPU1FXX6YiDGGxd+q2aPJRMzpsxdzCXo9dz+xtOY= | ||||||
| github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||||||
| github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= | github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= | ||||||
| github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | ||||||
| github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||||||
| github.com/onsi/gomega v1.28.0 h1:i2rg/p9n/UqIDAMFUJ6qIUUMcsqOuUHgbpbu235Vr1c= | github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/redis/rueidis v1.0.28 h1:Txig8OB9lGlAuFL5F7msvt3WE2iH/KRK9ZTCcNXHhdc= | github.com/redis/rueidis v1.0.38 h1:ZlEBumHM+ECCMgf/zQZImLfmxb/sxGKnBP0R0AxoH/Y= | ||||||
| github.com/redis/rueidis v1.0.28/go.mod h1:5NloBb5TbM1QoWb4jCPY7sjUpUzk3fsG4Ky4Rba+W0w= | github.com/redis/rueidis v1.0.38/go.mod h1:bnbkk4+CkXZgDPEbUtSos/o55i4RhFYYesJ4DS2zmq0= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= | golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= | ||||||
| golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= | golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= | ||||||
| golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||||||
| golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= | golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -35,6 +35,7 @@ func (s *Storage) Conn() *s3.Client | |||||||
| // Additional useful methods. | // Additional useful methods. | ||||||
| func (s *Storage) CreateBucket(bucket string) error | func (s *Storage) CreateBucket(bucket string) error | ||||||
| func (s *Storage) DeleteBucket(bucket string) error | func (s *Storage) DeleteBucket(bucket string) error | ||||||
|  | func (s *Storage) DeleteMany(keys ...string) error | ||||||
| func (s *Storage) SetWithChecksum(key string, val []byte, checksum map[types.ChecksumAlgorithm][]byte) error | func (s *Storage) SetWithChecksum(key string, val []byte, checksum map[types.ChecksumAlgorithm][]byte) error | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										40
									
								
								s3/go.mod
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								s3/go.mod
									
									
									
									
									
								
							| @@ -3,29 +3,29 @@ module github.com/gofiber/storage/s3/v2 | |||||||
| go 1.19 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2 v1.24.1 | 	github.com/aws/aws-sdk-go-v2 v1.27.2 | ||||||
| 	github.com/aws/aws-sdk-go-v2/config v1.26.6 | 	github.com/aws/aws-sdk-go-v2/config v1.27.17 | ||||||
| 	github.com/aws/aws-sdk-go-v2/credentials v1.16.16 | 	github.com/aws/aws-sdk-go-v2/credentials v1.17.18 | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15 | 	github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.23 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1 | 	github.com/aws/aws-sdk-go-v2/service/s3 v1.55.0 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect | 	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect | 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10 // indirect | 	github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.10 // indirect | 	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect | 	github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 // indirect | ||||||
| 	github.com/aws/smithy-go v1.19.0 // indirect | 	github.com/aws/smithy-go v1.20.2 // indirect | ||||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||||
| 	github.com/jmespath/go-jmespath v0.4.0 // indirect | 	github.com/jmespath/go-jmespath v0.4.0 // indirect | ||||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||||
|   | |||||||
							
								
								
									
										81
									
								
								s3/go.sum
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								s3/go.sum
									
									
									
									
									
								
							| @@ -1,45 +1,44 @@ | |||||||
| github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= | github.com/aws/aws-sdk-go-v2 v1.27.2 h1:pLsTXqX93rimAOZG2FIYraDQstZaaGVVN4tNw65v0h8= | ||||||
| github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= | github.com/aws/aws-sdk-go-v2 v1.27.2/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= | ||||||
| github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 h1:OCs21ST2LrepDfD3lwlQiOqIGp6JiEUqG84GzTDoyJs= | github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= | ||||||
| github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4/go.mod h1:usURWEKSNNAcAZuzRn/9ZYPT8aZQkR7xcCtunK/LkJo= | github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.26.6 h1:Z/7w9bUqlRI0FFQpetVuFYEsjzE3h7fpU6HuGmfPL/o= | github.com/aws/aws-sdk-go-v2/config v1.27.17 h1:L0JZN7Gh7pT6u5CJReKsLhGKparqNKui+mcpxMXjDZc= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.26.6/go.mod h1:uKU6cnDmYCvJ+pxO9S4cWDb2yWWIH5hra+32hVh1MI4= | github.com/aws/aws-sdk-go-v2/config v1.27.17/go.mod h1:MzM3balLZeaafYcPz8IihAmam/aCz6niPQI0FdprxW0= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.16.16 h1:8q6Rliyv0aUFAVtzaldUEcS+T5gbadPbWdV1WcAddK8= | github.com/aws/aws-sdk-go-v2/credentials v1.17.18 h1:D/ALDWqK4JdY3OFgA2thcPO1c9aYTT5STS/CvnkqY1c= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.16.16/go.mod h1:UHVZrdUsv63hPXFo1H7c5fEneoVo9UXiz36QG1GEPi0= | github.com/aws/aws-sdk-go-v2/credentials v1.17.18/go.mod h1:JuitCWq+F5QGUrmMPsk945rop6bB57jdscu+Glozdnc= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5 h1:dDgptDO9dxeFkXy+tEgVkzSClHZje/6JkPW5aZyEvrQ= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.5/go.mod h1:gjvE2KBUgUQhcv89jqxrIxH9GaKs1JbZzWejj/DaHGA= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15 h1:2MUXyGW6dVaQz6aqycpbdLIH1NMcUI6kW6vQ0RabGYg= | github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.23 h1:g6IHovcexw51hcP0hxsT7Mr3/PG76hZvoodm9tuKuUc= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.15.15/go.mod h1:aHbhbR6WEQgHAiRj41EQ2W47yOYwNtIkWTXmcAtYqj8= | github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.23/go.mod h1:8KSZ0CibxgOaPk28CFL4DGBdGrscHJr8FuxB+jnJBaM= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9 h1:cy8ahBJuhtM8GTTSyOkfy6WVPV1IE+SS5/wfXUYuulw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.9/go.mod h1:CZBXGLaJnEZI6EVNcPd7a6B5IC5cA/GkRWtu9fp3S6Y= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9 h1:A4SYk07ef04+vxZToz9LWvAXl9LW0NClpPpMsi31cz0= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.9/go.mod h1:5jJcHuwDagxN+ErjQ3PU3ocf6Ylc/p9x+BLO/+X4iXw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3 h1:n3GDfwqF2tzEkXlv5cuy4iy7LpKDtqDMcNLfZDu9rls= | github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.7.3/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= | github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10 h1:5oE2WzJE56/mVveuDZPJESKlg/00AaS2pY2QZcnxg4M= | github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8 h1:jH33S0y5Bo5ZVML62JgZhjd/LrtU+vbR8W7XnIE3Srk= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.10/go.mod h1:FHbKWQtRBYUz4vO5WBWjzMD2by126ny5y/1EoaWoLfI= | github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.8/go.mod h1:hD5YwHLOy6k7d6kqcn3me1bFWHOtzhaXstMd6BpdB68= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10 h1:L0ai8WICYHozIKK+OtPzVJBugL7culcuM4E4JOpIEm8= | github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10 h1:pkYC5zTOSPXEYJj56b2SOik9AL432i5MT1YVTQbKOK0= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.10/go.mod h1:byqfyxJBshFk0fF9YmK0M0ugIO8OWjzH2T3bPG4eGuA= | github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.10/go.mod h1:/WNsBOlKWZCG3PMh2aSp8vkyyT/clpMZqOtrnIKqGfk= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11 h1:o4T+fKxA3gTMcluBNZZXE9DNaMkJuUL1O3mffCUjoJo= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.11/go.mod h1:84oZdJ+VjuJKs9v1UTC9NaodRZRseOXCTgku+vQJWR8= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.10 h1:KOxnQeWy5sXyS37fdKEvAsGHOr9fa/qvwxfJurR/BzE= | github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8 h1:iQNXVs1vtaq+y9M90M4ZIVNORje0qXTscqHLqoOnFS0= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.10/go.mod h1:jMx5INQFYFYB3lQD9W0D8Ohgq6Wnl7NYOJ2TQndbulI= | github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.8/go.mod h1:yUQPRlWqGG0lfNsmjbRWKVwgilfBtZTOFSLEYALlAig= | ||||||
| github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1 h1:5XNlsBsEvBZBMO6p82y+sqpWg8j5aBCe+5C2GBFgqBQ= | github.com/aws/aws-sdk-go-v2/service/s3 v1.55.0 h1:6kq0Xql9qiwNGL/Go87ZqR4otg9jnKs71OfWCVbPxLM= | ||||||
| github.com/aws/aws-sdk-go-v2/service/s3 v1.48.1/go.mod h1:4qXHrG1Ne3VGIMZPCB8OjH/pLFO94sKABIusjh0KWPU= | github.com/aws/aws-sdk-go-v2/service/s3 v1.55.0/go.mod h1:oSkRFuHVWmUY4Ssk16ErGzBqvYEbvORJFzFXzWhTB2s= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 h1:eajuO3nykDPdYicLlP3AGgOyVN3MOlFmZv7WGTuJPow= | github.com/aws/aws-sdk-go-v2/service/sso v1.20.11 h1:gEYM2GSpr4YNWc6hCd5nod4+d4kd9vWIAWrmGuLdlMw= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.18.7/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= | github.com/aws/aws-sdk-go-v2/service/sso v1.20.11/go.mod h1:gVvwPdPNYehHSP9Rs7q27U1EU+3Or2ZpXvzAYJNh63w= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 h1:QPMJf+Jw8E1l7zqhZmMlFw6w1NmfkfiSK8mS4zOx3BA= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5 h1:iXjh3uaH3vsVcnyZX7MqCoCfcyxIrVE9iOQruRaWPrQ= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.5/go.mod h1:5ZXesEuy/QcO0WUnt+4sDkxhdXRHTu2yG0uCSH8B6os= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= | github.com/aws/aws-sdk-go-v2/service/sts v1.28.12 h1:M/1u4HBpwLuMtjlxuI2y6HoVLzF5e2mfxHCg7ZVMYmk= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= | github.com/aws/aws-sdk-go-v2/service/sts v1.28.12/go.mod h1:kcfd+eTdEi/40FIbLq4Hif3XMXnl5b/+t/KTfLt9xIk= | ||||||
| github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= | github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= | ||||||
| github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= | github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= | ||||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= |  | ||||||
| github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | ||||||
| github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= | ||||||
| github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= | github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= | ||||||
| @@ -47,8 +46,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfC | |||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||||
|   | |||||||
| @@ -36,6 +36,32 @@ func (s *Storage) DeleteBucket(bucket string) error { | |||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // DeleteMany entries by keys. | ||||||
|  | func (s *Storage) DeleteMany(keys ...string) error { | ||||||
|  | 	if len(keys) <= 0 { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	var objects []types.ObjectIdentifier | ||||||
|  | 	for _, k := range keys { | ||||||
|  | 		objects = append(objects, types.ObjectIdentifier{ | ||||||
|  | 			Key: aws.String(k), | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	ctx, cancel := s.requestContext() | ||||||
|  | 	defer cancel() | ||||||
|  |  | ||||||
|  | 	_, err := s.svc.DeleteObjects(ctx, &s3.DeleteObjectsInput{ | ||||||
|  | 		Bucket: &s.bucket, | ||||||
|  | 		Delete: &types.Delete{ | ||||||
|  | 			Objects: objects, | ||||||
|  | 		}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	return err | ||||||
|  | } | ||||||
|  |  | ||||||
| // SetWithChecksum sets key with value and checksum. | // SetWithChecksum sets key with value and checksum. | ||||||
| // | // | ||||||
| // Currently 4 algorithms are supported: | // Currently 4 algorithms are supported: | ||||||
|   | |||||||
| @@ -18,6 +18,34 @@ func Test_S3_CreateDeleteBucket(t *testing.T) { | |||||||
| 	require.NoError(t, err) | 	require.NoError(t, err) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Test_S3_DeleteMany(t *testing.T) { | ||||||
|  | 	val := []byte("doe") | ||||||
|  |  | ||||||
|  | 	err := testStore.Set("john1", val, 0) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	err = testStore.Set("john2", val, 0) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	err = testStore.Set("john3", val, 0) | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	err = testStore.DeleteMany("john1", "john2") | ||||||
|  | 	require.NoError(t, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStore.Get("john1") | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	require.Zero(t, len(result)) | ||||||
|  |  | ||||||
|  | 	result, err = testStore.Get("john2") | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	require.Zero(t, len(result)) | ||||||
|  |  | ||||||
|  | 	result, err = testStore.Get("john3") | ||||||
|  | 	require.NoError(t, err) | ||||||
|  | 	require.Equal(t, val, result) | ||||||
|  | } | ||||||
|  |  | ||||||
| func Test_S3_SetWithChecksum(t *testing.T) { | func Test_S3_SetWithChecksum(t *testing.T) { | ||||||
| 	var ( | 	var ( | ||||||
| 		key = "set-with-checksum" | 		key = "set-with-checksum" | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.20 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gocql/gocql v1.6.0 | 	github.com/gocql/gocql v1.6.0 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -23,8 +23,8 @@ github.com/scylladb/gocql v1.11.1 h1:AlIPHHZf2l0Cbj8wGjfELspaGfnd4meGj9sPQnr5dn8 | |||||||
| github.com/scylladb/gocql v1.11.1/go.mod h1:ZLEJ0EVE5JhmtxIW2stgHq/v1P4fWap0qyyXSKyV8K0= | github.com/scylladb/gocql v1.11.1/go.mod h1:ZLEJ0EVE5JhmtxIW2stgHq/v1P4fWap0qyyXSKyV8K0= | ||||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||||
| github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| golang.org/x/net v0.0.0-20220526153639-5463443f8c37 h1:lUkvobShwKsOesNfWWlCS5q7fnbG1MEliIzwu886fn8= | golang.org/x/net v0.0.0-20220526153639-5463443f8c37 h1:lUkvobShwKsOesNfWWlCS5q7fnbG1MEliIzwu886fn8= | ||||||
| golang.org/x/net v0.0.0-20220526153639-5463443f8c37/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | golang.org/x/net v0.0.0-20220526153639-5463443f8c37/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.19 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.22 | 	github.com/mattn/go-sqlite3 v1.14.22 | ||||||
| 	github.com/stretchr/testify v1.8.4 | 	github.com/stretchr/testify v1.9.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -4,8 +4,8 @@ github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o | |||||||
| github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= | github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||||
| github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= | github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||||||
| github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= | github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= | ||||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user