mirror of
				https://github.com/gofiber/storage.git
				synced 2025-10-31 19:52:45 +08:00 
			
		
		
		
	Compare commits
	
		
			247 Commits
		
	
	
		
			bbolt/v1.3
			...
			mssql/v1.3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 87bb8a408c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 38c7d87300 | ||
|   | 544251e681 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 79079a1588 | ||
|   | 9b8fbbe710 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3cf40177fb | ||
|   | d865a554b1 | ||
|   | 56366d252e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 40d0bbcd04 | ||
|   | d536bf88ec | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 932bb5bb7c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | bc217cf94d | ||
|   | 9cd63043c7 | ||
|   | d574b31723 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f9f90a78aa | ||
|   | 2751b27d8e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 763cd2a116 | ||
|   | e35c881c60 | ||
|   | 5ddd49417e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a536aeb484 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d556f0600c | ||
|   | 86a070ba95 | ||
|   | 8b43d65db7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a442a10435 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0f19d7e7a3 | ||
|   | 40b55f8623 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f0a9cb7eb5 | ||
|   | baf1cd6f6f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 363da11e66 | ||
|   | a6ed269baf | ||
|   | bdd345a093 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c5ebba6a5f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f22219bc24 | ||
|   | b2c586c124 | ||
|   | d4e2e3855a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c14486d19c | ||
|   | 59b965453e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7202c98a32 | ||
|   | 4216da2c74 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f095be3ebf | ||
|   | 6581ab3f07 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c8ef22ea1f | ||
|   | bd32283899 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ef180673e3 | ||
|   | 50b0432d75 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7de9b3831a | ||
|   | cca505e8d7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | dc1a243d40 | ||
|   | a905829b4b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b02409072e | ||
|   | b4a187a288 | ||
|   | afcdf55278 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 57009f9900 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 30088827f8 | ||
|   | 3cb256e558 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | cc387a31a8 | ||
|   | 255d499dd1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 035e220e4a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 12ef109fb1 | ||
|   | 7d72f76698 | ||
|   | 33e4902051 | ||
|   | 5bbdf2fba6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6f259cefd2 | ||
|   | 8ab3b8216d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e93f03c1e4 | ||
|   | 38c207c315 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2bdc69ea0b | ||
|   | 6daf9a2b07 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9f6ffa3b2e | ||
|   | e0d5aef2a3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b61bc913ca | ||
|   | 2ac08c9d70 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9e37910ee5 | ||
|   | 0b8805bc3d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | eadf410bbe | ||
|   | b735c4a72a | ||
|   | 98f78cf864 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7d726253df | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 91824ad6c8 | ||
|   | 55dc0cf6e0 | ||
|   | 808cf6778b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d1c3493765 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 85c11d850d | ||
|   | 10680abda7 | ||
|   | 200738a370 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6a8b73a2f3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a66b7764f6 | ||
|   | 0be1c37af5 | ||
|   | afe52a9cf8 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6ef0db07d1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 960163ea48 | ||
|   | ec9d4c1f18 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7f67534357 | ||
|   | f411b856f8 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e37cc98b6d | ||
|   | ac5787fa65 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e7e03c2743 | ||
|   | 106c5f8f5c | ||
|   | 83edce7155 | ||
|   | dff02a2998 | ||
|   | 7769513ca5 | ||
|   | 6014de4ee7 | ||
|   | 73aedd8a72 | ||
|   | ec921b81ba | ||
|   | 6c22afe293 | ||
|   | efb747ae43 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 5028696803 | ||
|   | ae3ec197df | ||
|   | 2970f04de9 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 9d95878f07 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0c9ddbbfc5 | ||
|   | 49733e1be3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | c648e063d0 | ||
|   | 3822d8810c | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0e286885a9 | ||
|   | 15dc8460b4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | bb1d9165e4 | ||
|   | b3ad7dfa6d | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3cc51b29df | ||
|   | 78849085f0 | ||
|   | e3320c4084 | ||
|   | 22e48de898 | ||
|   | 7e6ede5392 | ||
|   | 5a120d6807 | ||
|   | ca239f0353 | ||
|   | 6a614f832e | ||
|   | 163223d2ae | ||
|   | 5e4f21998b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | afa1845884 | ||
|   | c5dcdeeeb9 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0a28808076 | ||
|   | 681addbc44 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3070b92a1a | ||
|   | 3bc82f8ba2 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 182dffbb2b | ||
|   | e6e9899fde | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 0c8ae83437 | ||
|   | 12304b6c69 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d4821f4081 | ||
|   | f1db2b938a | ||
|   | 62a2237b12 | ||
|   | 5b601650c1 | ||
|   | 4fff115484 | ||
|   | 2030d6bedc | ||
|   | 188183f268 | ||
|   | cc594845f2 | ||
|   | c2fc6d75f2 | ||
|   | 1ab2060f49 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 91a8c49b97 | ||
|   | 8978d06c91 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 91c14686eb | ||
|   | ba8724cf5a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 2d85619f08 | ||
|   | 051a214db7 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1003347044 | ||
|   | b53ab6b5c6 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | df72ed55f2 | ||
|   | 08795be652 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ec0e35123a | ||
|   | 07725d6663 | ||
|   | 83285cb60e | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 1435bb3c45 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3860aa554d | ||
|   | f9f4ab050a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8488eb63a7 | ||
|   | 8a0fa4c063 | ||
|   | 47ed4c56f3 | ||
|   | 4e342e03f0 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f63b41b577 | ||
|   | 20890304d0 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | eff3d26529 | ||
|   | 43b0074e9f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 6aae9b8202 | ||
|   | 1d9f2399f1 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 59c66e6c28 | ||
|   | ef3d4e20a4 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 27ced8e41c | ||
|   | 2441f85244 | ||
|   | c1aaef52f7 | ||
|   | f07e641c06 | ||
|   | 14d989aaab | ||
|   | 57f18bb17e | ||
|   | 5627741945 | ||
|   | dd9a30caed | ||
|   | 478527cfe6 | ||
|   | 94187f16f7 | ||
|   | 166e7afc35 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | b63e2ec1f4 | ||
|   | 6427b9ec4c | ||
|   | 3928e84760 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d7d4596fff | ||
|   | 277b986d51 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 70fee34609 | ||
|   | 1d9548f814 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7236d3072e | ||
|   | ccb994294b | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 496fe74085 | ||
|   | 54de76d0a0 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 536652e4dc | ||
|   | dd26802d13 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | e8d52cf39d | ||
|   | f805f4b19d | ||
|   | 2d57c82700 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | ca00466318 | ||
|   | 826b9999b3 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 83bf2fcdd6 | ||
|   | 596f2b300a | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | f2a9a240e0 | ||
|   | 4c99d651ea | ||
|   | a003309f46 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 8556d05651 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 3db4eca735 | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | a0b639e2b6 | ||
|   | c807ce6226 | ||
|   | 5201b1530f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | d9a1c49d7f | ||
| ![dependabot[bot]](/assets/img/avatar_default.png)  | 7c6f5f13e4 | ||
|   | 36cad8502f | ||
|   | cfe24e69a0 | ||
|   | f27ab7a48b | ||
|   | 155991d08b | ||
|   | 8e7e1286be | ||
|   | 4b273b74cb | ||
|   | 1fc6144cc0 | ||
|   | 90e5588e5d | ||
|   | c57db8ae34 | ||
|   | 634e4f7bbb | ||
|   | 4f9889ce48 | ||
|   | 55e5545d5b | ||
|   | 8922818463 | ||
|   | 1914d5fb39 | ||
|   | 98df5fc473 | ||
|   | ae951cdfcc | ||
|   | a567590b51 | ||
|   | e76d7e56b6 | ||
|   | 6d004c4bca | ||
|   | bab82c9802 | ||
|   | 73a941a879 | ||
|   | 868c89fd7e | ||
|   | c050ff8e3d | ||
|   | 1fec873770 | ||
|   | 877dae612d | ||
|   | 5bf7da2074 | ||
|   | 9c850f5235 | ||
|   | bd837d91ab | ||
|   | c4e1c722b1 | ||
|   | 85e612ec79 | 
							
								
								
									
										79
									
								
								.github/ISSUE_TEMPLATE/bug-report.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								.github/ISSUE_TEMPLATE/bug-report.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,79 @@ | |||||||
|  | name: "\U0001F41B Bug Report" | ||||||
|  | title: "\U0001F41B [Bug]: " | ||||||
|  | description: Create a bug report to help us fix it. | ||||||
|  | labels: ["☢️ Bug"] | ||||||
|  |  | ||||||
|  | body: | ||||||
|  |   - type: markdown | ||||||
|  |     id: notice | ||||||
|  |     attributes: | ||||||
|  |       value: | | ||||||
|  |         ### Notice | ||||||
|  |         - Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord). | ||||||
|  |         - If you think Fiber storage don't have a nice feature that you think, open the issue with **✏️ Feature Request** template. | ||||||
|  |         - Write your issue with clear and understandable English. | ||||||
|  |   - type: textarea | ||||||
|  |     id: description | ||||||
|  |     attributes: | ||||||
|  |       label: "Bug Description" | ||||||
|  |       description: "A clear and detailed description of what the bug is." | ||||||
|  |       placeholder: "Explain your problem as clear and detailed." | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: textarea | ||||||
|  |     id: how-to-reproduce | ||||||
|  |     attributes: | ||||||
|  |       label: How to Reproduce | ||||||
|  |       description: "Steps to reproduce the behavior and what should be observed in the end." | ||||||
|  |       placeholder: "Tell us step by step how we can replicate your problem and what we should see in the end." | ||||||
|  |       value: | | ||||||
|  |           Steps to reproduce the behavior: | ||||||
|  |           1. Go to '....' | ||||||
|  |           2. Click on '....' | ||||||
|  |           3. Do '....' | ||||||
|  |           4. See '....' | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: textarea | ||||||
|  |     id: expected-behavior | ||||||
|  |     attributes: | ||||||
|  |       label: Expected Behavior | ||||||
|  |       description: "A clear and detailed description of what you think should happens." | ||||||
|  |       placeholder: "Tell us what storage should normally do." | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: input | ||||||
|  |     id: version | ||||||
|  |     attributes: | ||||||
|  |       label: "Storage package Version" | ||||||
|  |       description: "Some bugs may be fixed in future storage releases, so we have to know your storage package version." | ||||||
|  |       placeholder: "Write your storage version. (v1.0.0, v1.1.0...)" | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: textarea | ||||||
|  |     id: snippet | ||||||
|  |     attributes: | ||||||
|  |       label: "Code Snippet (optional)" | ||||||
|  |       description: "For some issues, we need to know some parts of your code." | ||||||
|  |       placeholder: "Share a code you think related to the issue." | ||||||
|  |       render: go | ||||||
|  |       value: | | ||||||
|  |         package main | ||||||
|  |  | ||||||
|  |         import "github.com/gofiber/storage/%package%" | ||||||
|  |  | ||||||
|  |         func main() { | ||||||
|  |           // Steps to reproduce | ||||||
|  |         } | ||||||
|  |   - type: checkboxes | ||||||
|  |     id: terms | ||||||
|  |     attributes: | ||||||
|  |       label: "Checklist:" | ||||||
|  |       description: "By submitting this issue, you confirm that:" | ||||||
|  |       options: | ||||||
|  |         - label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)." | ||||||
|  |           required: true | ||||||
|  |         - label: "I have checked for existing issues that describe my problem prior to opening this one." | ||||||
|  |           required: true | ||||||
|  |         - label: "I understand that improperly formatted bug reports may be closed without explanation." | ||||||
|  |           required: true | ||||||
							
								
								
									
										55
									
								
								.github/ISSUE_TEMPLATE/feature-request.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								.github/ISSUE_TEMPLATE/feature-request.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | name: "\U0001F680 Feature Request" | ||||||
|  | title: "\U0001F680 [Feature]: " | ||||||
|  | description: Suggest an idea to improve this project. | ||||||
|  | labels: ["✏️ Feature"] | ||||||
|  |  | ||||||
|  | body: | ||||||
|  |   - type: markdown | ||||||
|  |     id: notice | ||||||
|  |     attributes: | ||||||
|  |       value: | | ||||||
|  |         ### Notice | ||||||
|  |         - Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord). | ||||||
|  |         - If you think this is just a bug, open the issue with **☢️ Bug Report** template. | ||||||
|  |         - Write your issue with clear and understandable English. | ||||||
|  |   - type: textarea | ||||||
|  |     id: description | ||||||
|  |     attributes: | ||||||
|  |       label: "Feature Description" | ||||||
|  |       description: "A clear and detailed description of the feature we need to do." | ||||||
|  |       placeholder: "Explain your feature as clear and detailed." | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: textarea | ||||||
|  |     id: additional-context | ||||||
|  |     attributes: | ||||||
|  |       label: "Additional Context (optional)" | ||||||
|  |       description: "If you have something else to describe, write them here." | ||||||
|  |       placeholder: "Write here what you can describe differently." | ||||||
|  |   - type: textarea | ||||||
|  |     id: snippet | ||||||
|  |     attributes: | ||||||
|  |       label: "Code Snippet (optional)" | ||||||
|  |       description: "Code snippet may be really helpful to describe some features." | ||||||
|  |       placeholder: "Share a code to explain the feature better." | ||||||
|  |       render: go | ||||||
|  |       value: | | ||||||
|  |         package main | ||||||
|  |  | ||||||
|  |         import "github.com/gofiber/storage/%package%" | ||||||
|  |  | ||||||
|  |         func main() { | ||||||
|  |           // Steps to reproduce | ||||||
|  |         } | ||||||
|  |   - type: checkboxes | ||||||
|  |     id: terms | ||||||
|  |     attributes: | ||||||
|  |       label: "Checklist:" | ||||||
|  |       description: "By submitting this issue, you confirm that:" | ||||||
|  |       options: | ||||||
|  |         - label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)." | ||||||
|  |           required: true | ||||||
|  |         - label: "I have checked for existing issues that describe my suggestion prior to opening this one." | ||||||
|  |           required: true | ||||||
|  |         - label: "I understand that improperly formatted feature requests may be closed without explanation." | ||||||
|  |           required: true | ||||||
							
								
								
									
										50
									
								
								.github/ISSUE_TEMPLATE/question.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								.github/ISSUE_TEMPLATE/question.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | name: "🤔 Question" | ||||||
|  | title: "\U0001F917 [Question]: " | ||||||
|  | description: Ask a question so we can help you easily. | ||||||
|  | labels: ["🤔 Question"] | ||||||
|  |  | ||||||
|  | body: | ||||||
|  |   - type: markdown | ||||||
|  |     id: notice | ||||||
|  |     attributes: | ||||||
|  |       value: | | ||||||
|  |         ### Notice | ||||||
|  |         - Dont't forget you can ask your questions on our [Discord server](https://gofiber.io/discord). | ||||||
|  |         - If you think this is just a bug, open the issue with **☢️ Bug Report** template. | ||||||
|  |         - If you think Fiber storage don't have a nice feature that you think, open the issue with **✏️ Feature Request** template. | ||||||
|  |         - Write your issue with clear and understandable English. | ||||||
|  |   - type: textarea | ||||||
|  |     id: description | ||||||
|  |     attributes: | ||||||
|  |       label: "Question Description" | ||||||
|  |       description: "A clear and detailed description of the question." | ||||||
|  |       placeholder: "Explain your question as clear and detailed." | ||||||
|  |     validations: | ||||||
|  |       required: true | ||||||
|  |   - type: textarea | ||||||
|  |     id: snippet | ||||||
|  |     attributes: | ||||||
|  |       label: "Code Snippet (optional)" | ||||||
|  |       description: "Code snippet may be really helpful to describe some features." | ||||||
|  |       placeholder: "Share a code to explain the feature better." | ||||||
|  |       render: go | ||||||
|  |       value: | | ||||||
|  |         package main | ||||||
|  |  | ||||||
|  |         import "github.com/gofiber/storage/%package%" | ||||||
|  |  | ||||||
|  |         func main() { | ||||||
|  |           // Steps to reproduce | ||||||
|  |         } | ||||||
|  |   - type: checkboxes | ||||||
|  |     id: terms | ||||||
|  |     attributes: | ||||||
|  |       label: "Checklist:" | ||||||
|  |       description: "By submitting this issue, you confirm that:" | ||||||
|  |       options: | ||||||
|  |         - label: "I agree to follow Fiber's [Code of Conduct](https://github.com/gofiber/fiber/blob/master/.github/CODE_OF_CONDUCT.md)." | ||||||
|  |           required: true | ||||||
|  |         - label: "I have checked for existing issues that describe my questions prior to opening this one." | ||||||
|  |           required: true | ||||||
|  |         - label: "I understand that improperly formatted questions may be closed without explanation." | ||||||
|  |           required: true | ||||||
							
								
								
									
										71
									
								
								.github/labeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								.github/labeler.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,53 +1,20 @@ | |||||||
| # Labels is an object where: | version: v1 | ||||||
| # - keys are labels |  | ||||||
| # - values are array of string patterns to match against title + body in issues/prs |  | ||||||
| labels: | labels: | ||||||
|     '📒 Documentation': |     -   label: '📒 Documentation' | ||||||
|         - '\bdocs\b' |         matcher: | ||||||
|         - '\bdoc:\b' |             title: '\b(docs|doc:|\[doc\]|README|typos|comment|documentation)\b' | ||||||
|         - '\b\[doc\]\b' |     -   label: '☢️ Bug' | ||||||
|         - '\bREADME\b' |         matcher: | ||||||
|         - '\btypos\b' |             title: '\b(fix|race|bug|missing|correct)\b' | ||||||
|         - '\bcomment\b' |     -   label: '🧹 Updates' | ||||||
|         - '📚' |         matcher: | ||||||
|         - '📒' |             title: '\b(improve|update|refactor|deprecated|remove|unused|test)\b' | ||||||
|         - '📝' |     -   label: '🤖 Dependencies' | ||||||
|         - '\bdocumentation\b' |         matcher: | ||||||
|     '☢️ Bug': |             title: '\b(bumb|bdependencies)\b' | ||||||
|         - '\bfix\b' |     -   label: '✏️ Feature' | ||||||
|         - '\brace\b' |         matcher: | ||||||
|         - '\bbug\b' |             title: '\b(feature|create|implement|add)\b' | ||||||
|         - '\bmissing\b' |     -   label: '🤔 Question' | ||||||
|         - '\bcorrect\b' |         matcher: | ||||||
|         - '🐛' |             title: '\b(question|how)\b' | ||||||
|         - '☢' |  | ||||||
|         - '🩹' |  | ||||||
|         - '🚨' |  | ||||||
|     '🧹 Updates': |  | ||||||
|         - '\bimprove\b' |  | ||||||
|         - '\bupdate\b' |  | ||||||
|         - '\brefactor\b' |  | ||||||
|         - '\bdeprecated\b' |  | ||||||
|         - '\bremove\b' |  | ||||||
|         - '\bunused\b' |  | ||||||
|         - '\btest\b' |  | ||||||
|         - '⚡' |  | ||||||
|         - '👷' |  | ||||||
|         - '🚧' |  | ||||||
|         - '♻️' |  | ||||||
|         - '🎨' |  | ||||||
|         - '🧪' |  | ||||||
|         - '🧹' |  | ||||||
|     '🤖 Dependencies': |  | ||||||
|         - '\bbumb\b' |  | ||||||
|         - '\bdependencies\b' |  | ||||||
|         - '📦' |  | ||||||
|         - '🤖' |  | ||||||
|     '✏️ Feature': |  | ||||||
|         - '\bfeature\b' |  | ||||||
|         - '\bcreate\b' |  | ||||||
|         - '\bimplement\b' |  | ||||||
|         - '\badd\b' |  | ||||||
|         - '🚀' |  | ||||||
|         - '✨' |  | ||||||
|         - '🔥' |  | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								.github/workflows/auto-labeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/auto-labeler.yml
									
									
									
									
										vendored
									
									
								
							| @@ -4,13 +4,19 @@ on: | |||||||
|         types: [ opened, edited, milestoned ] |         types: [ opened, edited, milestoned ] | ||||||
|     pull_request_target: |     pull_request_target: | ||||||
|         types: [ opened ] |         types: [ opened ] | ||||||
|  | permissions: | ||||||
|  |     contents: read | ||||||
|  |     issues: write | ||||||
|  |     pull-requests: write | ||||||
|  |     statuses: write | ||||||
|  |     checks: write | ||||||
| jobs: | jobs: | ||||||
|     labeler: |     labeler: | ||||||
|         runs-on: ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|  |         if: ${{ github.actor != 'dependabot[bot]' }} | ||||||
|         steps: |         steps: | ||||||
|             -   name: Check Labels |             -   name: Check Labels | ||||||
|                 id: labeler |                 id: labeler | ||||||
|                 uses: jimschubert/labeler-action@v2 |                 uses: fuxingloh/multi-labeler@v2 | ||||||
|                 with: |                 with: | ||||||
|                     GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} |                     github-token: ${{secrets.GITHUB_TOKEN}} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								.github/workflows/dependabot_automerge.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/dependabot_automerge.yml
									
									
									
									
										vendored
									
									
								
							| @@ -28,7 +28,7 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - name: Dependabot metadata |       - name: Dependabot metadata | ||||||
|         id: metadata |         id: metadata | ||||||
|         uses: dependabot/fetch-metadata@v1.3.6 |         uses: dependabot/fetch-metadata@v1.5.1 | ||||||
|         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 | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/security.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/security.yml
									
									
									
									
										vendored
									
									
								
							| @@ -12,9 +12,9 @@ jobs: | |||||||
|             -   name: Fetch Repository |             -   name: Fetch Repository | ||||||
|                 uses: actions/checkout@v3 |                 uses: actions/checkout@v3 | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '^1.17.6' |                     go-version: '^1.17.x' | ||||||
|             -   name: Install Gosec |             -   name: Install Gosec | ||||||
|                 run: | |                 run: | | ||||||
|                     export PATH=${PATH}:`go env GOPATH`/bin |                     export PATH=${PATH}:`go env GOPATH`/bin | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-arangodb.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-arangodb.yml
									
									
									
									
										vendored
									
									
								
							| @@ -22,15 +22,13 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								.github/workflows/test-azureblob.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/test-azureblob.yml
									
									
									
									
										vendored
									
									
								
							| @@ -17,15 +17,13 @@ jobs: | |||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|         -   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 Go |         -   name: Install Go | ||||||
|             uses: actions/setup-go@v3 |             uses: actions/setup-go@v4 | ||||||
|             with: |             with: | ||||||
|                 go-version: '${{ matrix.go-version }}' |                 go-version: '${{ matrix.go-version }}' | ||||||
|         -   name: Setup Golang caches |         -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-badger.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-badger.yml
									
									
									
									
										vendored
									
									
								
							| @@ -16,13 +16,11 @@ jobs: | |||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|                     - windows-latest |  | ||||||
|         runs-on: '${{ matrix.platform }}' |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-bbolt.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-bbolt.yml
									
									
									
									
										vendored
									
									
								
							| @@ -17,12 +17,10 @@ jobs: | |||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
| @@ -44,4 +42,4 @@ jobs: | |||||||
|             -   name: Fetch Repository |             -   name: Fetch Repository | ||||||
|                 uses: actions/checkout@v3 |                 uses: actions/checkout@v3 | ||||||
|             -   name: Run Test |             -   name: Run Test | ||||||
|                 run: cd ./bbolt && go mod tidy && go test ./... -v -race |                 run: cd ./bbolt && go test ./... -v -race | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-dynamodb.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-dynamodb.yml
									
									
									
									
										vendored
									
									
								
							| @@ -20,15 +20,13 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-memcache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-memcache.yml
									
									
									
									
										vendored
									
									
								
							| @@ -20,15 +20,13 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								.github/workflows/test-mongodb.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/test-mongodb.yml
									
									
									
									
										vendored
									
									
								
							| @@ -20,15 +20,13 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
| @@ -51,3 +49,4 @@ jobs: | |||||||
|                 uses: actions/checkout@v3 |                 uses: actions/checkout@v3 | ||||||
|             -   name: Run Test |             -   name: Run Test | ||||||
|                 run: cd ./mongodb && go test ./... -v -race |                 run: cd ./mongodb && go test ./... -v -race | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								.github/workflows/test-mssql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/test-mssql.yml
									
									
									
									
										vendored
									
									
								
							| @@ -14,7 +14,7 @@ jobs: | |||||||
|         runs-on: ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|         services: |         services: | ||||||
|             mssql: |             mssql: | ||||||
|                 image: 'mcmoe/mssqldocker:v2019.CU4.0' |                 image: 'mcmoe/mssqldocker:latest' | ||||||
|                 ports: |                 ports: | ||||||
|                     - '1433:1433' |                     - '1433:1433' | ||||||
|                 env: |                 env: | ||||||
| @@ -32,15 +32,12 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |  | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-mysql.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-mysql.yml
									
									
									
									
										vendored
									
									
								
							| @@ -28,15 +28,13 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-postgres.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-postgres.yml
									
									
									
									
										vendored
									
									
								
							| @@ -27,15 +27,11 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |  | ||||||
|                     - 1.18.x |  | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								.github/workflows/test-redis.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/test-redis.yml
									
									
									
									
										vendored
									
									
								
							| @@ -18,9 +18,6 @@ jobs: | |||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                     - 1.20.x |                     - 1.20.x | ||||||
|                 platform: |  | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|                 redis: |                 redis: | ||||||
|                     - '6.x' |                     - '6.x' | ||||||
|                     - '7.x' |                     - '7.x' | ||||||
| @@ -43,8 +40,18 @@ jobs: | |||||||
|                     --tls-key-file ./redis/tests/tls/redis.key \ |                     --tls-key-file ./redis/tests/tls/redis.key \ | ||||||
|                     --tls-ca-cert-file ./redis/tests/tls/ca.crt& |                     --tls-ca-cert-file ./redis/tests/tls/ca.crt& | ||||||
|  |  | ||||||
|  |             -   name: Setup Redis Cluster | ||||||
|  |                 uses: vishnudxb/redis-cluster@1.0.5 | ||||||
|  |                 with: | ||||||
|  |                     master1-port: 7000 | ||||||
|  |                     master2-port: 7001 | ||||||
|  |                     master3-port: 7002 | ||||||
|  |                     slave1-port: 7003 | ||||||
|  |                     slave2-port: 7004 | ||||||
|  |                     slave3-port: 7005 | ||||||
|  |  | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								.github/workflows/test-ristretto.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/test-ristretto.yml
									
									
									
									
										vendored
									
									
								
							| @@ -17,12 +17,10 @@ jobs: | |||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|         -   name: Install Go |         -   name: Install Go | ||||||
|             uses: actions/setup-go@v3 |             uses: actions/setup-go@v4 | ||||||
|             with: |             with: | ||||||
|                 go-version: '${{ matrix.go-version }}' |                 go-version: '${{ matrix.go-version }}' | ||||||
|         -   name: Setup Golang caches |         -   name: Setup Golang caches | ||||||
| @@ -44,4 +42,4 @@ jobs: | |||||||
|         -   name: Fetch Repository |         -   name: Fetch Repository | ||||||
|             uses: actions/checkout@v3 |             uses: actions/checkout@v3 | ||||||
|         -   name: Run Test |         -   name: Run Test | ||||||
|             run: cd ./ristretto && go mod tidy && go test ./... -v -race |             run: cd ./ristretto && go test ./... -v -race | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								.github/workflows/test-s3.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/test-s3.yml
									
									
									
									
										vendored
									
									
								
							| @@ -15,12 +15,9 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |  | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |  | ||||||
|                     - windows-latest |  | ||||||
|         steps: |         steps: | ||||||
|         -   name: Install MinIO |         -   name: Install MinIO | ||||||
|             run: | |             run: | | ||||||
| @@ -32,7 +29,7 @@ jobs: | |||||||
|  |  | ||||||
|                 aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket |                 aws --endpoint-url http://127.0.0.1:9000/ s3 mb s3://testbucket | ||||||
|         -   name: Install Go |         -   name: Install Go | ||||||
|             uses: actions/setup-go@v3 |             uses: actions/setup-go@v4 | ||||||
|             with: |             with: | ||||||
|                 go-version: '${{ matrix.go-version }}' |                 go-version: '${{ matrix.go-version }}' | ||||||
|         -   name: Setup Golang caches |         -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								.github/workflows/test-sqlite3.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/test-sqlite3.yml
									
									
									
									
										vendored
									
									
								
							| @@ -14,16 +14,14 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|                     - windows-latest |  | ||||||
|         runs-on: '${{ matrix.platform }}' |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @@ -14,16 +14,14 @@ jobs: | |||||||
|         strategy: |         strategy: | ||||||
|             matrix: |             matrix: | ||||||
|                 go-version: |                 go-version: | ||||||
|                     - 1.16.x |                     - 1.17.x | ||||||
|                     - 1.18.x |                     - 1.18.x | ||||||
|                     - 1.19.x |                     - 1.19.x | ||||||
|                 platform: |                     - 1.20.x | ||||||
|                     - ubuntu-latest |         runs-on: ubuntu-latest | ||||||
|                     - windows-latest |  | ||||||
|         runs-on: '${{ matrix.platform }}' |  | ||||||
|         steps: |         steps: | ||||||
|             -   name: Install Go |             -   name: Install Go | ||||||
|                 uses: actions/setup-go@v3 |                 uses: actions/setup-go@v4 | ||||||
|                 with: |                 with: | ||||||
|                     go-version: '${{ matrix.go-version }}' |                     go-version: '${{ matrix.go-version }}' | ||||||
|             -   name: Setup Golang caches |             -   name: Setup Golang caches | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								.github/workflows/vulncheck.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/vulncheck.yml
									
									
									
									
										vendored
									
									
								
							| @@ -5,9 +5,9 @@ jobs: | |||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     steps: |     steps: | ||||||
|     - name: Install Go |     - name: Install Go | ||||||
|       uses: actions/setup-go@v3 |       uses: actions/setup-go@v4 | ||||||
|       with: |       with: | ||||||
|         go-version: 1.19.x |         go-version: 1.18.x | ||||||
|     - name: Fetch Repository |     - name: Fetch Repository | ||||||
|       uses: actions/checkout@v3 |       uses: actions/checkout@v3 | ||||||
|     - name: Install Govulncheck |     - name: Install Govulncheck | ||||||
|   | |||||||
							
								
								
									
										186
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										186
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,94 +1,92 @@ | |||||||
| <p align="center"> | <p align="center"> | ||||||
|   <!-- <a href="https://gofiber.io"> |   <picture> | ||||||
|     <img alt="Fiber" height="125" src="https://raw.githubusercontent.com/gofiber/docs/master/static/fiber_v2_logo.svg"> |     <source height="125" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo-dark.svg"> | ||||||
|    </a> |     <img height="125" alt="Fiber" src="https://raw.githubusercontent.com/gofiber/docs/master/static/img/logo.svg"> | ||||||
|   <br>   --> |   </picture> | ||||||
|  |   <br> | ||||||
|   # 📦 Storage |  | ||||||
|  |   # 📦 Storage | ||||||
|   <a href="https://pkg.go.dev/github.com/gofiber/storage?tab=doc"> |  | ||||||
|     <img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat"> |   <a href="https://pkg.go.dev/github.com/gofiber/storage?tab=doc"> | ||||||
|   </a> |     <img src="https://img.shields.io/badge/%F0%9F%93%9A%20godoc-pkg-00ACD7.svg?color=00ACD7&style=flat"> | ||||||
|   <a href="https://goreportcard.com/report/github.com/gofiber/storage"> |   </a> | ||||||
|     <img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B"> |   <a href="https://goreportcard.com/report/github.com/gofiber/storage"> | ||||||
|   </a> |     <img src="https://img.shields.io/badge/%F0%9F%93%9D%20goreport-A%2B-75C46B"> | ||||||
|   <a href="https://gocover.io/github.com/gofiber/storage"> |   </a> | ||||||
|     <img src="https://img.shields.io/badge/%F0%9F%94%8E%20gocover-97.8%25-75C46B.svg?style=flat"> |   <a href="https://gofiber.io/discord"> | ||||||
|   </a> |     <img src="https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7"> | ||||||
|   <a href="https://gofiber.io/discord"> |   </a> | ||||||
|     <img src="https://img.shields.io/discord/704680098577514527?style=flat&label=%F0%9F%92%AC%20discord&color=00ACD7"> | </p> | ||||||
|   </a> |  | ||||||
| </p> | Premade storage drivers that implement the [`Storage`](https://github.com/gofiber/storage/blob/main/storage.go) interface, designed to be used with various [Fiber middlewares](https://github.com/gofiber/fiber/tree/master/middleware). | ||||||
|  |  | ||||||
| Premade storage drivers that implement the [`Storage`](https://github.com/gofiber/storage/blob/main/storage.go) interface, designed to be used with various [Fiber middlewares](https://github.com/gofiber/fiber/tree/master/middleware). | ```go | ||||||
|  | // Storage interface for communicating with different database/key-value | ||||||
| ```go | // providers. Visit https://github.com/gofiber/storage for more info. | ||||||
| // Storage interface for communicating with different database/key-value | type Storage interface { | ||||||
| // providers. Visit https://github.com/gofiber/storage for more info. | 	// Get gets the value for the given key. | ||||||
| type Storage interface { | 	// `nil, nil` is returned when the key does not exist | ||||||
| 	// Get gets the value for the given key. | 	Get(key string) ([]byte, error) | ||||||
| 	// `nil, nil` is returned when the key does not exist |  | ||||||
| 	Get(key string) ([]byte, error) | 	// Set stores the given value for the given key along | ||||||
|  | 	// with an expiration value, 0 means no expiration. | ||||||
| 	// Set stores the given value for the given key along | 	// Empty key or value will be ignored without an error. | ||||||
| 	// with an expiration value, 0 means no expiration. | 	Set(key string, val []byte, exp time.Duration) error | ||||||
| 	// Empty key or value will be ignored without an error. |  | ||||||
| 	Set(key string, val []byte, exp time.Duration) error | 	// Delete deletes the value for the given key. | ||||||
|  | 	// It returns no error if the storage does not contain the key, | ||||||
| 	// Delete deletes the value for the given key. | 	Delete(key string) error | ||||||
| 	// It returns no error if the storage does not contain the key, |  | ||||||
| 	Delete(key string) error | 	// Reset resets the storage and delete all keys. | ||||||
|  | 	Reset() error | ||||||
| 	// Reset resets the storage and delete all keys. |  | ||||||
| 	Reset() error | 	// Close closes the storage and will stop any running garbage | ||||||
|  | 	// collectors and open connections. | ||||||
| 	// Close closes the storage and will stop any running garbage | 	Close() error | ||||||
| 	// collectors and open connections. | } | ||||||
| 	Close() error | ``` | ||||||
| } |  | ||||||
| ``` | ## 📑 Storage Implementations | ||||||
|  |  | ||||||
| ## 📑 Storage Implementations | * [ArangoDB](/arangodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+ArangoDB%22"> | ||||||
|  |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-arangodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [ArangoDB](/arangodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+ArangoDB%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-arangodb.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | * [AzureBlob](/azureblob) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22"> | ||||||
|   </a> |   <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"> | ||||||
| * [AzureBlob](/azureblob) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Azure+Blob%22"> |   </a> | ||||||
|   <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"> | * [Badger](/badger) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [Badger](/badger) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Badger%22"> |   </a> | ||||||
|     <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"> | * [Bbolt](/bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [Bbolt](/bbolt) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Bbolt%22"> |   </a> | ||||||
|     <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"> | * [DynamoDB](/dynamodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [DynamoDB](/dynamodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+DynamoDB%22"> |   </a> | ||||||
|     <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"> | * [Memcache](/memcache) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [Memcache](/memcache) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Memcache%22"> |   </a> | ||||||
|     <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"> | * [Memory](/memory) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22"> | ||||||
|   </a> |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [Memory](/memory) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Local+Storage%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | * [MongoDB](/mongodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [MongoDB](/mongodb) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Mongodb%22"> |   </a> | ||||||
|     <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"> | * [MSSQL](/mssql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [MSSQL](/mssql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MSSQL%22"> |   </a> | ||||||
|     <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"> | * [MySQL](/mysql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22"> | ||||||
|   </a> |     <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"> | ||||||
| * [MySQL](/mysql) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+MySQL%22"> |   </a> | ||||||
|     <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"> | * [Postgres](/postgres) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Postgres%22"> | ||||||
|   </a> |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-postgres.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [Postgres](/postgres) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Postgres%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-postgres.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | * [Redis](/redis) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Redis%22"> | ||||||
|   </a> |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-redis.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [Redis](/redis) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Redis%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-redis.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | * [SQLite3](/sqlite3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Sqlite3%22"> | ||||||
|   </a> |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-sqlite3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [SQLite3](/sqlite3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+Sqlite3%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-sqlite3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | * [S3](/s3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+S3%22"> | ||||||
|   </a> |     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-s3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> | ||||||
| * [S3](/s3) <a href="https://github.com/gofiber/storage/actions?query=workflow%3A%22Tests+S3%22"> |   </a> | ||||||
|     <img src="https://img.shields.io/github/actions/workflow/status/gofiber/storage/test-s3.yml?branch=main&label=%F0%9F%A7%AA%20&style=flat&color=75C46B"> |  | ||||||
|   </a> |  | ||||||
|   | |||||||
| @@ -1,8 +1,13 @@ | |||||||
| module github.com/gofiber/storage/arangodb | module github.com/gofiber/storage/arangodb | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/arangodb/go-driver v1.5.0 | 	github.com/arangodb/go-driver v1.6.0 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/arangodb/go-velocypack v0.0.0-20200318135517-5af53c29c67e // indirect | ||||||
|  | 	github.com/pkg/errors v0.9.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| github.com/arangodb/go-driver v1.5.0 h1:PaSwAMbxGATf6M5uJpm5fvO/6FiT8ZgJIxEl+AQj6EY= | github.com/arangodb/go-driver v1.6.0 h1:NFWj/idqXZxhFVueihMSI2R9NotNIsgvNfM/xmpekb4= | ||||||
| github.com/arangodb/go-driver v1.5.0/go.mod h1:+Kn5y+rHkSpjXmYOQiBDhwSJvIhOHdNI1ODl/aqD/fc= | github.com/arangodb/go-driver v1.6.0/go.mod h1:HQmdGkvNMVBTE3SIPSQ8T/ZddC6iwNsfMR+dDJQxIsI= | ||||||
| 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/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= | github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= | ||||||
| @@ -7,8 +7,8 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 | |||||||
| github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | ||||||
| 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/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4= | github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= | github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= | ||||||
| github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||||
| @@ -21,17 +21,33 @@ github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJ | |||||||
| 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 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= | github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= | ||||||
| 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/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | ||||||
| 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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||||
| golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= | ||||||
| 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-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||||
|  | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= | ||||||
|  | golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
| 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/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-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||||
| golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/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-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.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
|  | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||||
|  | golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | ||||||
| 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.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= | ||||||
|  | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
|  | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||||
| golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/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.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= | ||||||
| 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 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= | ||||||
|   | |||||||
| @@ -11,6 +11,6 @@ require ( | |||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect | ||||||
| 	github.com/google/uuid v1.3.0 // indirect | 	github.com/google/uuid v1.3.0 // indirect | ||||||
| 	golang.org/x/net v0.4.0 // indirect | 	golang.org/x/net v0.7.0 // indirect | ||||||
| 	golang.org/x/text v0.5.0 // indirect | 	golang.org/x/text v0.7.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,12 +1,8 @@ | |||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 h1:sVW/AFBTGyJxDaMYlq0ct3jUXTtj12tQ6zE2GZUgVQw= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0 h1:sVW/AFBTGyJxDaMYlq0ct3jUXTtj12tQ6zE2GZUgVQw= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.2.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.1 h1:Oj853U9kG+RLTCQXpjvOnrv0WaZHxgmZz1TlLywgOPY= |  | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.1/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= |  | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 h1:+5VZ72z0Qan5Bog5C+ZkgSqUbeVUd9wgtHOrIKuc5b8= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.5.1 h1:BMTdr+ib5ljLa9MxTJK8x/Ds0MbBb4MfuW5BL0zMJnI= |  | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.5.1/go.mod h1:c6WvOhtmjNUWbLfOG1qxM/q0SPvQNSVJvolm+C52dIU= |  | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1 h1:YvQv9Mz6T8oR5ypQOL6erY0Z5t71ak1uHV4QFokCOZk= | github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1 h1:YvQv9Mz6T8oR5ypQOL6erY0Z5t71ak1uHV4QFokCOZk= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1/go.mod h1:c6WvOhtmjNUWbLfOG1qxM/q0SPvQNSVJvolm+C52dIU= | github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.6.1/go.mod h1:c6WvOhtmjNUWbLfOG1qxM/q0SPvQNSVJvolm+C52dIU= | ||||||
| github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= | github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= | ||||||
| @@ -22,14 +18,10 @@ github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXc | |||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||||
| github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= | github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= | ||||||
| golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 h1:Tgea0cVUD0ivh5ADBX4WwuI12DUd2to3nCYe2eayMIw= | golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 h1:Tgea0cVUD0ivh5ADBX4WwuI12DUd2to3nCYe2eayMIw= | ||||||
| golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= | golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= | ||||||
| golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
| golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= | golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= | ||||||
| golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= | golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= | ||||||
| golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
| golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= |  | ||||||
| golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= |  | ||||||
| golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= |  | ||||||
| golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= |  | ||||||
| gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ go 1.18 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/dgraph-io/badger/v3 v3.2103.5 | 	github.com/dgraph-io/badger/v3 v3.2103.5 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| @@ -21,7 +21,7 @@ require ( | |||||||
| 	github.com/klauspost/compress v1.15.12 // indirect | 	github.com/klauspost/compress v1.15.12 // indirect | ||||||
| 	github.com/pkg/errors v0.9.1 // indirect | 	github.com/pkg/errors v0.9.1 // indirect | ||||||
| 	go.opencensus.io v0.24.0 // indirect | 	go.opencensus.io v0.24.0 // indirect | ||||||
| 	golang.org/x/net v0.2.0 // indirect | 	golang.org/x/net v0.7.0 // indirect | ||||||
| 	golang.org/x/sys v0.2.0 // indirect | 	golang.org/x/sys v0.5.0 // indirect | ||||||
| 	google.golang.org/protobuf v1.28.1 // indirect | 	google.golang.org/protobuf v1.28.1 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -31,8 +31,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m | |||||||
| github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= | ||||||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||||
| github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= | github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= | ||||||
| github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= | github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= | ||||||
| github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | ||||||
| @@ -136,8 +136,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.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= | golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= | ||||||
| golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
| 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= | ||||||
| @@ -152,8 +152,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.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= | golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= | ||||||
| golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| 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= | ||||||
|   | |||||||
| @@ -1,12 +1,28 @@ | |||||||
| module github.com/gofiber/storage/dynamodb | module github.com/gofiber/storage/dynamodb | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2 v1.17.4 | 	github.com/aws/aws-sdk-go-v2 v1.18.0 | ||||||
| 	github.com/aws/aws-sdk-go-v2/config v1.18.13 | 	github.com/aws/aws-sdk-go-v2/config v1.18.25 | ||||||
| 	github.com/aws/aws-sdk-go-v2/credentials v1.13.13 | 	github.com/aws/aws-sdk-go-v2/credentials v1.13.24 | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.13 | 	github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.25 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/dynamodb v1.18.3 | 	github.com/aws/aws-sdk-go-v2/service/dynamodb v1.19.7 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.14.11 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.27 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 // indirect | ||||||
|  | 	github.com/aws/smithy-go v1.13.5 // indirect | ||||||
|  | 	github.com/jmespath/go-jmespath v0.4.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,41 +1,41 @@ | |||||||
| github.com/aws/aws-sdk-go-v2 v1.17.4 h1:wyC6p9Yfq6V2y98wfDsj6OnNQa4w2BLGCLIxzNhwOGY= | github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= | ||||||
| github.com/aws/aws-sdk-go-v2 v1.17.4/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= | github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.18.13 h1:v0xlYqbO6/EVlM8tUn2QEOA7btQxcgidEq2JRDBPTho= | github.com/aws/aws-sdk-go-v2/config v1.18.25 h1:JuYyZcnMPBiFqn87L2cRppo+rNwgah6YwD3VuyvaW6Q= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.18.13/go.mod h1:r39wGSZB7wPDW1i54JyQXUpc5KsWjh5z/3S5D9eCqDg= | github.com/aws/aws-sdk-go-v2/config v1.18.25/go.mod h1:dZnYpD5wTW/dQF0rRNLVypB396zWCcPiBIvdvSWHEg4= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.13.13 h1:zw1KAc1kl00NYd3ofVmFrb09qnYlSQMeh+fmlQRAihI= | github.com/aws/aws-sdk-go-v2/credentials v1.13.24 h1:PjiYyls3QdCrzqUN35jMWtUK1vqVZ+zLfdOa/UPFDp0= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.13.13/go.mod h1:DW9nbIIF9MrIja0cBQrUpeWYQMSlNmP8fevLUyF9W38= | github.com/aws/aws-sdk-go-v2/credentials v1.13.24/go.mod h1:jYPYi99wUOPIFi0rhiOvXeSEReVOzBqFNOX5bXYoG2o= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.13 h1:l+VnL8qkVJ/89c9zSQvPdmtQc+tYnuIb4qWZrYsgTBE= | github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.25 h1:/+Z/dCO+1QHOlCm7m9G61snvIaDRUTv/HXp+8HdESiY= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.13/go.mod h1:tPnUO5mS3JThpwfq4Q8iPd745s7yh6fGPqDUEBw+Wv4= | github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.10.25/go.mod h1:JQ0HJ+3LaAKHx3uwRUAfR/tb/gOlgAGPT6mZfIq55Ec= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 h1:3aMfcTmoXtTZnaT86QlVaYh+BRMbvrrmZwIQ5jWqCZQ= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 h1:jJPgroehGvjrde3XufFIJUZVK5A2L9a3KwSFgKy9n8w= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22/go.mod h1:YGSIJyQ6D6FjKMQh16hVFSIUD54L4F7zTGePqYMYYJU= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 h1:r+XwaCLpIvCKjBIYy/HVZujQS9tsz5ohHG3ZIe0wKoE= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28/go.mod h1:3lwChorpIM/BhImY/hy+Z6jekmN92cXGPI1QJasVPYY= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 h1:7AwGYXDdqRQYsluvKFmWoqpcOQJ4bH634SkYf3FNj/A= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22/go.mod h1:EqK7gVrIGAHyZItrD1D8B0ilgwMD1GiWAmbU4u/JHNk= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 h1:J4xhFd6zHhdF9jPP0FQJ6WknzBboGMBNjKOv4iTuw4A= | github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29/go.mod h1:TwuqRBGzxjQJIwH16/fOZodwXt2Zxa9/cwJC5ke4j7s= | github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodb v1.18.3 h1:MxOpCZ+o9+AIeQHi2ocW7H4D7p0LhEkmetETVvDnkvg= | github.com/aws/aws-sdk-go-v2/service/dynamodb v1.19.7 h1:yb2o8oh3Y+Gg2g+wlzrWS3pB89+dHrXayT/d9cs8McU= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodb v1.18.3/go.mod h1:nkpC9xkh+3vdxmhqN8Ac10pgV14DsJDLzUsV2CcS+44= | github.com/aws/aws-sdk-go-v2/service/dynamodb v1.19.7/go.mod h1:1MNss6sqoIsFGisX92do/5doiUCBrN7EjhZCS/8DUjI= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.14.3 h1:B+bkmCnNJi194pu9aTtYUe8f4EPXafC+xfU+zciVxdg= | github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.14.11 h1:WHi9VKMYGtWt2DzqeYHXzt55aflymO2EZ6axuKla8oU= | ||||||
| github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.14.3/go.mod h1:bRphLmXQD9Ux4jLcFEwyrWdmuPTj2Lh8VGl9wILuJII= | github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.14.11/go.mod h1:pP+91QTpJMvcFTqGky6puHrkBs8oqoB3XOCiGRDaXwI= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.22 h1:6zEryIiJOSk5/OcVHzkPDwzNBQ2atYCTShyA7TqkuxA= | github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.27 h1:QmyPCRZNMR1pFbiOi9kBZWZuKrKB9LD4cxltxQk4tNE= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.22/go.mod h1:moeOz5SKfY0p6pNIChdPIQdfaUfWI67+OVe0/r6+aGY= | github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.7.27/go.mod h1:DfuVY36ixXnsG+uTqnoLWunXAKJ4qjccoFrXUPpj+hs= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 h1:LjFQf8hFuMO22HkV5VWGLBvmCLBCLPivUAmpdpnp4Vs= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22/go.mod h1:xt0Au8yPIwYXf/GYPy/vl4K3CgwhfQMYbrH7DlUUIws= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.12.2 h1:EN102fWY7hI5u/2FPheTrwwMHkSXfl49RYkeEnJsrCU= | github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 h1:UBQjaMTCKwyUYwiVnUt6toEJwGXsLBI6al083tpjJzY= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.12.2/go.mod h1:IgV8l3sj22nQDd5qcAGY0WenwCzCphqdbFOpfktZPrI= | github.com/aws/aws-sdk-go-v2/service/sso v1.12.10/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2 h1:f1lmlce7r13CX1BPyPqt9oh/H+uqOWc9367lDoGGwNQ= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 h1:PkHIIJs8qvq0e5QybnZoG1K/9QTrLr9OsqCIo59jOBA= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2/go.mod h1:O1YSOg3aekZibh2SngvCRRG+cRHKKlYgxf/JBF/Kr/k= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 h1:s49mSnsBZEXjfGBkRfmK+nPqzT7Lt3+t2SmAKNyHblw= | github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 h1:2DQLAKDteoEDI8zpCzqBMaZlJuoE9iTYD0gFmXVax9E= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.18.3/go.mod h1:b+psTJn33Q4qGoDaM7ZiOVVG8uVjGI6HaZ8WBHdgDgU= | github.com/aws/aws-sdk-go-v2/service/sts v1.19.0/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8= | ||||||
| github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= | github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= | ||||||
| github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= | github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= | ||||||
| github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | ||||||
| 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/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= | 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-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||||||
| github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -1,3 +1,3 @@ | |||||||
| module github.com/gofiber/storage | module github.com/gofiber/storage | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| module github.com/gofiber/storage/memcache | module github.com/gofiber/storage/memcache | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 | 	github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 h1:hjXJeBcAMS1WGENGqDpzvmgS43oECTx8UXq31UBu0Jw= | github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 h1:hjXJeBcAMS1WGENGqDpzvmgS43oECTx8UXq31UBu0Jw= | ||||||
| github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| module github.com/gofiber/storage/memory | module github.com/gofiber/storage/memory | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require github.com/gofiber/utils v1.0.1 | require github.com/gofiber/utils v1.1.0 | ||||||
|   | |||||||
| @@ -1,2 +1,2 @@ | |||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
|   | |||||||
| @@ -137,5 +137,7 @@ func (s *Storage) gc() { | |||||||
|  |  | ||||||
| // Return database client | // Return database client | ||||||
| func (s *Storage) Conn() map[string]entry { | func (s *Storage) Conn() map[string]entry { | ||||||
|  | 	s.mux.RLock() | ||||||
|  | 	defer s.mux.RUnlock() | ||||||
| 	return s.db | 	return s.db | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,10 +1,22 @@ | |||||||
| module github.com/gofiber/storage/mongodb | module github.com/gofiber/storage/mongodb | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| 	github.com/golang/snappy v0.0.4 // indirect | 	go.mongodb.org/mongo-driver v1.11.6 | ||||||
| 	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect | ) | ||||||
| 	go.mongodb.org/mongo-driver v1.11.2 |  | ||||||
|  | require ( | ||||||
|  | 	github.com/golang/snappy v0.0.4 // indirect | ||||||
|  | 	github.com/klauspost/compress v1.13.6 // indirect | ||||||
|  | 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect | ||||||
|  | 	github.com/pkg/errors v0.9.1 // indirect | ||||||
|  | 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect | ||||||
|  | 	github.com/xdg-go/scram v1.1.1 // indirect | ||||||
|  | 	github.com/xdg-go/stringprep v1.0.3 // indirect | ||||||
|  | 	github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect | ||||||
|  | 	golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect | ||||||
|  | 	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect | ||||||
|  | 	golang.org/x/text v0.3.8 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| 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/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= | 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= | ||||||
| @@ -35,27 +35,44 @@ github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgk | |||||||
| github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= | 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= | ||||||
| go.mongodb.org/mongo-driver v1.11.2 h1:+1v2rDQUWNcGW7/7E0Jvdz51V38XXxJfhzbV17aNHCw= | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= | ||||||
| go.mongodb.org/mongo-driver v1.11.2/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8= | go.mongodb.org/mongo-driver v1.11.6 h1:XM7G6PjiGAO5betLF13BIa5TlLUUE3uJ/2Ox3Lz1K+o= | ||||||
|  | go.mongodb.org/mongo-driver v1.11.6/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqblyjsfuh8oXY= | ||||||
| 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-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY= | ||||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||||
|  | 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-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-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||||
|  | 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-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= | ||||||
| golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= | ||||||
|  | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/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-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-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-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
|  | 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||||||
| golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= |  | ||||||
| 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 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= | ||||||
|  | golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= | ||||||
| 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.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-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= | 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 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|   | |||||||
| @@ -100,6 +100,19 @@ func New(config ...Config) *Storage { | |||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	// Create unique index for the "key" field | ||||||
|  | 	keyIndexModel := mongo.IndexModel{ | ||||||
|  | 		Keys: bson.D{{ | ||||||
|  | 			Key:   "key", | ||||||
|  | 			Value: 1, | ||||||
|  | 		}}, | ||||||
|  | 		Options: options.Index().SetUnique(true), | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if _, err := col.Indexes().CreateOne(ctx, keyIndexModel); err != nil { | ||||||
|  | 		panic(err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	store := &Storage{ | 	store := &Storage{ | ||||||
| 		db:  db, | 		db:  db, | ||||||
| 		col: col, | 		col: col, | ||||||
|   | |||||||
| @@ -1,13 +1,14 @@ | |||||||
| module github.com/gofiber/storage/mssql | module github.com/gofiber/storage/mssql | ||||||
|  |  | ||||||
| go 1.16 | go 1.18 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| 	github.com/microsoft/go-mssqldb v0.20.0 | 	github.com/microsoft/go-mssqldb v1.1.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect | 	github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect | ||||||
| 	golang.org/x/crypto v0.3.0 // indirect | 	github.com/golang-sql/sqlexp v0.1.0 // indirect | ||||||
|  | 	golang.org/x/crypto v0.9.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
							
								
								
									
										81
									
								
								mssql/go.sum
									
									
									
									
									
								
							
							
						
						
									
										81
									
								
								mssql/go.sum
									
									
									
									
									
								
							| @@ -1,90 +1,89 @@ | |||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.2/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= | github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= | github.com/AzureAD/microsoft-authentication-library-for-go v1.0.0/go.mod h1:kgDmCTgBzIEPFElEF+FK0SdjAor06dRq2Go927dnQ6o= | ||||||
| github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= |  | ||||||
| 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/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.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= | github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= | ||||||
| github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= | github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= | github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= | ||||||
| github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= | github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= | ||||||
| github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= |  | ||||||
| github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= |  | ||||||
| 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.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= |  | ||||||
| github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||||
| github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= | github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= | ||||||
| github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= | ||||||
| github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | ||||||
|  | github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= | ||||||
| github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= | github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= | ||||||
| github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= | github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= | ||||||
| github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= | github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo= | ||||||
| github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= | github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= | ||||||
| github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= | github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs= | ||||||
| github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= | github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= | ||||||
| github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= | github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= | ||||||
| github.com/microsoft/go-mssqldb v0.20.0 h1:jAfvs5TIR311fEuNgohFzMtUO0IcCHyI1kWAVws4ES8= | github.com/microsoft/go-mssqldb v1.1.0 h1:jsV+tpvcPTbNNKW0o3kiCD69kOHICsfjZ2VcVu2lKYc= | ||||||
| github.com/microsoft/go-mssqldb v0.20.0/go.mod h1:ukJCBnnzLzpVF0qYRT+eg1e+eSwjeQ7IvenUv8QPook= | github.com/microsoft/go-mssqldb v1.1.0/go.mod h1:LzkFdl4z2Ck+Hi+ycGOTbL56VEfgoyA2DvYejrNGbRk= | ||||||
| github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= | github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= | ||||||
| github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= | github.com/montanaflynn/stats v0.7.0/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= | ||||||
| github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= |  | ||||||
| github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= | github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= | ||||||
| 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/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= | ||||||
|  | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= | ||||||
| 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.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= |  | ||||||
| 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.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.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= | ||||||
| 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= | ||||||
| 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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= |  | ||||||
| golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/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-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= | ||||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= | ||||||
| golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= | golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= | ||||||
| golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= | golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= | ||||||
| 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/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= | ||||||
| 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-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||||||
| golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= |  | ||||||
| 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-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= |  | ||||||
| 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/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= | golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
|  | golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | ||||||
|  | golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= | ||||||
|  | golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= | ||||||
| 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= | ||||||
|  | golang.org/x/sync v0.1.0/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-20200930185726-fdedc70b468f/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-20210124154548-22da62e12c0c/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-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= |  | ||||||
| golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7/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= | ||||||
| golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| 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/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= | golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | ||||||
|  | golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= | ||||||
|  | golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | ||||||
| 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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | ||||||
|  | golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||||
|  | golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||||
| 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.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/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= | ||||||
| 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= | ||||||
| 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/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= | gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= | ||||||
| @@ -94,4 +93,4 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
| gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| module github.com/gofiber/storage/mysql | module github.com/gofiber/storage/mysql | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/go-sql-driver/mysql v1.7.0 | 	github.com/go-sql-driver/mysql v1.7.1 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= | github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= | ||||||
| github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= | github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| # Postgres | # Postgres | ||||||
|  |  | ||||||
| A Postgres storage driver using [lib/pq](https://github.com/lib/pq). | A Postgres storage driver using [jackc/pgx](https://github.com/jackc/pgx). | ||||||
|  |  | ||||||
| ### Table of Contents | ### Table of Contents | ||||||
| - [Signatures](#signatures) | - [Signatures](#signatures) | ||||||
| @@ -17,7 +17,7 @@ func (s *Storage) Set(key string, val []byte, exp time.Duration) error | |||||||
| func (s *Storage) Delete(key string) error | func (s *Storage) Delete(key string) error | ||||||
| func (s *Storage) Reset() error | func (s *Storage) Reset() error | ||||||
| func (s *Storage) Close() error | func (s *Storage) Close() error | ||||||
| func (s *Storage) Conn() *sql.DB | func (s *Storage) Conn() *pgxpool.Pool | ||||||
| ``` | ``` | ||||||
| ### Installation | ### Installation | ||||||
| Postgres 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: | Postgres 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: | ||||||
| @@ -26,13 +26,13 @@ go mod init github.com/<user>/<repo> | |||||||
| ``` | ``` | ||||||
| And then install the postgres implementation: | And then install the postgres implementation: | ||||||
| ```bash | ```bash | ||||||
| go get github.com/gofiber/storage/postgres | go get github.com/gofiber/storage/postgres/v2 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Examples | ### Examples | ||||||
| Import the storage package. | Import the storage package. | ||||||
| ```go | ```go | ||||||
| import "github.com/gofiber/storage/postgres" | import "github.com/gofiber/storage/postgres/v2" | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| You can use the following possibilities to create a storage: | You can use the following possibilities to create a storage: | ||||||
| @@ -42,20 +42,10 @@ store := postgres.New() | |||||||
|  |  | ||||||
| // Initialize custom config | // Initialize custom config | ||||||
| store := postgres.New(postgres.Config{ | store := postgres.New(postgres.Config{ | ||||||
| 	Host:            "127.0.0.1", | 	Db:              dbPool, | ||||||
| 	Port:            5432, |  | ||||||
| 	Database:        "fiber", |  | ||||||
| 	Table:           "fiber_storage", | 	Table:           "fiber_storage", | ||||||
| 	Reset:           false, | 	Reset:           false, | ||||||
| 	GCInterval:      10 * time.Second, | 	GCInterval:      10 * time.Second, | ||||||
| 	SslMode:         "disable", |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| // Initialize custom config using connection string |  | ||||||
| store := postgres.New(postgres.Config{ |  | ||||||
| 	ConnectionURI:   "postgresql://user:password@localhost:5432/fiber" |  | ||||||
| 	Reset:           false, |  | ||||||
| 	GCInterval:      10 * time.Second, |  | ||||||
| }) | }) | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| @@ -63,6 +53,11 @@ store := postgres.New(postgres.Config{ | |||||||
| ```go | ```go | ||||||
| // Config defines the config for storage. | // Config defines the config for storage. | ||||||
| type Config struct { | type Config struct { | ||||||
|  | 	// DB pgxpool.Pool object will override connection uri and other connection fields | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is nil | ||||||
|  | 	DB *pgxpool.Pool | ||||||
|  |  | ||||||
| 	// Connection string to use for DB. Will override all other authentication values if used | 	// Connection string to use for DB. Will override all other authentication values if used | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is "" | 	// Optional. Default is "" | ||||||
| @@ -98,6 +93,11 @@ type Config struct { | |||||||
| 	// Optional. Default is "fiber_storage" | 	// Optional. Default is "fiber_storage" | ||||||
| 	Table string | 	Table string | ||||||
|  |  | ||||||
|  | 	// The SSL mode for the connection | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "disable" | ||||||
|  | 	SSLMode string | ||||||
|  |  | ||||||
| 	// Reset clears any existing keys in existing Table | 	// Reset clears any existing keys in existing Table | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is false | 	// Optional. Default is false | ||||||
| @@ -107,24 +107,20 @@ type Config struct { | |||||||
| 	// | 	// | ||||||
| 	// Optional. Default is 10 * time.Second | 	// Optional. Default is 10 * time.Second | ||||||
| 	GCInterval time.Duration | 	GCInterval time.Duration | ||||||
|  |  | ||||||
| 	// The SSL mode for the connection |  | ||||||
| 	// |  | ||||||
| 	// Optional. Default is "disable" |  | ||||||
| 	SslMode string |  | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Default Config | ### Default Config | ||||||
| ```go | ```go | ||||||
|  | // ConfigDefault is the default config | ||||||
| var ConfigDefault = Config{ | var ConfigDefault = Config{ | ||||||
| 	ConnectionURI:   "", | 	ConnectionURI: "", | ||||||
| 	Host:            "127.0.0.1", | 	Host:          "127.0.0.1", | ||||||
| 	Port:            5432, | 	Port:          5432, | ||||||
| 	Database:        "fiber", | 	Database:      "fiber", | ||||||
| 	Table:           "fiber_storage", | 	Table:         "fiber_storage", | ||||||
| 	Reset:           false, | 	SSLMode:       "disable", | ||||||
| 	GCInterval:      10 * time.Second, | 	Reset:         false, | ||||||
| 	SslMode:         "disable", | 	GCInterval:    10 * time.Second, | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|   | |||||||
| @@ -1,11 +1,21 @@ | |||||||
| package postgres | package postgres | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"net/url" | ||||||
|  | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
|  | 	"github.com/jackc/pgx/v5/pgxpool" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Config defines the config for storage. | // Config defines the config for storage. | ||||||
| type Config struct { | type Config struct { | ||||||
|  | 	// DB pgxpool.Pool object will override connection uri and other connection fields | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is nil | ||||||
|  | 	DB *pgxpool.Pool | ||||||
|  |  | ||||||
| 	// Connection string to use for DB. Will override all other authentication values if used | 	// Connection string to use for DB. Will override all other authentication values if used | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is "" | 	// Optional. Default is "" | ||||||
| @@ -44,7 +54,7 @@ type Config struct { | |||||||
| 	// The SSL mode for the connection | 	// The SSL mode for the connection | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is "disable" | 	// Optional. Default is "disable" | ||||||
| 	SslMode string | 	SSLMode string | ||||||
|  |  | ||||||
| 	// Reset clears any existing keys in existing Table | 	// Reset clears any existing keys in existing Table | ||||||
| 	// | 	// | ||||||
| @@ -55,57 +65,50 @@ type Config struct { | |||||||
| 	// | 	// | ||||||
| 	// Optional. Default is 10 * time.Second | 	// Optional. Default is 10 * time.Second | ||||||
| 	GCInterval time.Duration | 	GCInterval time.Duration | ||||||
|  |  | ||||||
| 	//////////////////////////////////// |  | ||||||
| 	// Adaptor related config options // |  | ||||||
| 	//////////////////////////////////// |  | ||||||
|  |  | ||||||
| 	// Maximum wait for connection, in seconds. Zero or |  | ||||||
| 	// n < 0 means wait indefinitely. |  | ||||||
| 	timeout time.Duration |  | ||||||
|  |  | ||||||
| 	// The maximum number of connections in the idle connection pool. |  | ||||||
| 	// |  | ||||||
| 	// If MaxOpenConns is greater than 0 but less than the new MaxIdleConns, |  | ||||||
| 	// then the new MaxIdleConns will be reduced to match the MaxOpenConns limit. |  | ||||||
| 	// |  | ||||||
| 	// If n <= 0, no idle connections are retained. |  | ||||||
| 	// |  | ||||||
| 	// The default max idle connections is currently 2. This may change in |  | ||||||
| 	// a future release. |  | ||||||
| 	maxIdleConns int |  | ||||||
|  |  | ||||||
| 	// The maximum number of open connections to the database. |  | ||||||
| 	// |  | ||||||
| 	// If MaxIdleConns is greater than 0 and the new MaxOpenConns is less than |  | ||||||
| 	// MaxIdleConns, then MaxIdleConns will be reduced to match the new |  | ||||||
| 	// MaxOpenConns limit. |  | ||||||
| 	// |  | ||||||
| 	// If n <= 0, then there is no limit on the number of open connections. |  | ||||||
| 	// The default is 0 (unlimited). |  | ||||||
| 	maxOpenConns int |  | ||||||
|  |  | ||||||
| 	// The maximum amount of time a connection may be reused. |  | ||||||
| 	// |  | ||||||
| 	// Expired connections may be closed lazily before reuse. |  | ||||||
| 	// |  | ||||||
| 	// If d <= 0, connections are reused forever. |  | ||||||
| 	connMaxLifetime time.Duration |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // ConfigDefault is the default config | // ConfigDefault is the default config | ||||||
| var ConfigDefault = Config{ | var ConfigDefault = Config{ | ||||||
| 	ConnectionURI:   "", | 	ConnectionURI: "", | ||||||
| 	Host:            "127.0.0.1", | 	Host:          "127.0.0.1", | ||||||
| 	Port:            5432, | 	Port:          5432, | ||||||
| 	Database:        "fiber", | 	Database:      "fiber", | ||||||
| 	Table:           "fiber_storage", | 	Table:         "fiber_storage", | ||||||
| 	SslMode:         "disable", | 	SSLMode:       "disable", | ||||||
| 	Reset:           false, | 	Reset:         false, | ||||||
| 	GCInterval:      10 * time.Second, | 	GCInterval:    10 * time.Second, | ||||||
| 	maxOpenConns:    100, | } | ||||||
| 	maxIdleConns:    100, |  | ||||||
| 	connMaxLifetime: 1 * time.Second, | func (c *Config) getDSN() string { | ||||||
|  | 	// Just return ConnectionURI if it's already exists | ||||||
|  | 	if c.ConnectionURI != "" { | ||||||
|  | 		return c.ConnectionURI | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Generate DSN | ||||||
|  | 	dsn := "postgresql://" | ||||||
|  | 	if c.Username != "" { | ||||||
|  | 		dsn += url.QueryEscape(c.Username) | ||||||
|  | 	} | ||||||
|  | 	if c.Password != "" { | ||||||
|  | 		dsn += ":" + url.QueryEscape(c.Password) | ||||||
|  | 	} | ||||||
|  | 	if c.Username != "" || c.Password != "" { | ||||||
|  | 		dsn += "@" | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// unix socket host path | ||||||
|  | 	if strings.HasPrefix(c.Host, "/") { | ||||||
|  | 		dsn += fmt.Sprintf("%s:%d", c.Host, c.Port) | ||||||
|  | 	} else { | ||||||
|  | 		dsn += fmt.Sprintf("%s:%d", url.QueryEscape(c.Host), c.Port) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	dsn += fmt.Sprintf("/%s?sslmode=%s", | ||||||
|  | 		url.QueryEscape(c.Database), | ||||||
|  | 		c.SSLMode) | ||||||
|  |  | ||||||
|  | 	return dsn | ||||||
| } | } | ||||||
|  |  | ||||||
| // Helper function to set default values | // Helper function to set default values | ||||||
| @@ -114,7 +117,6 @@ func configDefault(config ...Config) Config { | |||||||
| 	if len(config) < 1 { | 	if len(config) < 1 { | ||||||
| 		return ConfigDefault | 		return ConfigDefault | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Override default config | 	// Override default config | ||||||
| 	cfg := config[0] | 	cfg := config[0] | ||||||
|  |  | ||||||
| @@ -131,8 +133,8 @@ func configDefault(config ...Config) Config { | |||||||
| 	if cfg.Table == "" { | 	if cfg.Table == "" { | ||||||
| 		cfg.Table = ConfigDefault.Table | 		cfg.Table = ConfigDefault.Table | ||||||
| 	} | 	} | ||||||
| 	if cfg.SslMode == "" { | 	if cfg.Table == "" { | ||||||
| 		cfg.SslMode = ConfigDefault.SslMode | 		cfg.Table = ConfigDefault.Table | ||||||
| 	} | 	} | ||||||
| 	if int(cfg.GCInterval.Seconds()) <= 0 { | 	if int(cfg.GCInterval.Seconds()) <= 0 { | ||||||
| 		cfg.GCInterval = ConfigDefault.GCInterval | 		cfg.GCInterval = ConfigDefault.GCInterval | ||||||
|   | |||||||
| @@ -1,8 +1,17 @@ | |||||||
| module github.com/gofiber/storage/postgres | module github.com/gofiber/storage/postgres/v2 | ||||||
|  |  | ||||||
| go 1.16 | go 1.19 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| 	github.com/lib/pq v1.10.7 | 	github.com/jackc/pgx/v5 v5.3.1 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/jackc/pgpassfile v1.0.0 // indirect | ||||||
|  | 	github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect | ||||||
|  | 	github.com/jackc/puddle/v2 v2.2.0 // indirect | ||||||
|  | 	golang.org/x/crypto v0.7.0 // indirect | ||||||
|  | 	golang.org/x/sync v0.1.0 // indirect | ||||||
|  | 	golang.org/x/text v0.8.0 // indirect | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,4 +1,27 @@ | |||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||||||
| github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
|  | github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= | ||||||
|  | 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/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= | ||||||
|  | github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU= | ||||||
|  | github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8= | ||||||
|  | github.com/jackc/puddle/v2 v2.2.0 h1:RdcDk92EJBuBS55nQMMYFXTxwstHug4jkhT5pq8VxPk= | ||||||
|  | github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= | ||||||
|  | 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/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.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||||
|  | github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= | ||||||
|  | golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= | ||||||
|  | golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= | ||||||
|  | golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= | ||||||
|  | golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
|  | golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= | ||||||
|  | golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||||
|  | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||||
|  | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||||
|  | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||||||
|   | |||||||
| @@ -1,19 +1,20 @@ | |||||||
| package postgres | package postgres | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"database/sql" | 	"context" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"net/url" | 	"os" | ||||||
| 	"strings" | 	"strings" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
| 	_ "github.com/lib/pq" | 	"github.com/jackc/pgx/v5" | ||||||
|  | 	"github.com/jackc/pgx/v5/pgxpool" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Storage interface that is implemented by storage providers | // Storage interface that is implemented by storage providers | ||||||
| type Storage struct { | type Storage struct { | ||||||
| 	db         *sql.DB | 	db         *pgxpool.Pool | ||||||
| 	gcInterval time.Duration | 	gcInterval time.Duration | ||||||
| 	done       chan struct{} | 	done       chan struct{} | ||||||
|  |  | ||||||
| @@ -45,62 +46,33 @@ func New(config ...Config) *Storage { | |||||||
| 	// Set default config | 	// Set default config | ||||||
| 	cfg := configDefault(config...) | 	cfg := configDefault(config...) | ||||||
|  |  | ||||||
| 	// Create data source name | 	// Select db connection | ||||||
| 	var dsn string | 	var err error | ||||||
| 	if cfg.ConnectionURI != "" { | 	db := cfg.DB | ||||||
| 		dsn = cfg.ConnectionURI | 	if db == nil { | ||||||
| 	} else { | 		db, err = pgxpool.New(context.Background(), cfg.getDSN()) | ||||||
| 		dsn = "postgresql://" | 		if err != nil { | ||||||
| 		if cfg.Username != "" { | 			fmt.Fprintf(os.Stderr, "Unable to create connection pool: %v\n", err) | ||||||
| 			dsn += url.QueryEscape(cfg.Username) |  | ||||||
| 		} | 		} | ||||||
| 		if cfg.Password != "" { |  | ||||||
| 			dsn += ":" + url.QueryEscape(cfg.Password) |  | ||||||
| 		} |  | ||||||
| 		if cfg.Username != "" || cfg.Password != "" { |  | ||||||
| 			dsn += "@" |  | ||||||
| 		} |  | ||||||
| 		// unix socket host path |  | ||||||
| 		if strings.HasPrefix(cfg.Host, "/") { |  | ||||||
| 			dsn += fmt.Sprintf("%s:%d", cfg.Host, cfg.Port) |  | ||||||
| 		} else { |  | ||||||
| 			dsn += fmt.Sprintf("%s:%d", url.QueryEscape(cfg.Host), cfg.Port) |  | ||||||
| 		} |  | ||||||
| 		dsn += fmt.Sprintf("/%s?connect_timeout=%d&sslmode=%s", |  | ||||||
| 			url.QueryEscape(cfg.Database), |  | ||||||
| 			int64(cfg.timeout.Seconds()), |  | ||||||
| 			cfg.SslMode) |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Create db |  | ||||||
| 	db, err := sql.Open("postgres", dsn) |  | ||||||
| 	if err != nil { |  | ||||||
| 		panic(err) |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	// Set database options |  | ||||||
| 	db.SetMaxOpenConns(cfg.maxOpenConns) |  | ||||||
| 	db.SetMaxIdleConns(cfg.maxIdleConns) |  | ||||||
| 	db.SetConnMaxLifetime(cfg.connMaxLifetime) |  | ||||||
|  |  | ||||||
| 	// Ping database | 	// Ping database | ||||||
| 	if err := db.Ping(); err != nil { | 	if err := db.Ping(context.Background()); err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Drop table if set to true | 	// Drop table if set to true | ||||||
| 	if cfg.Reset { | 	if cfg.Reset { | ||||||
| 		if _, err = db.Exec(fmt.Sprintf(dropQuery, cfg.Table)); err != nil { | 		if _, err := db.Exec(context.Background(), fmt.Sprintf(dropQuery, cfg.Table)); err != nil { | ||||||
| 			_ = db.Close() | 			db.Close() | ||||||
| 			panic(err) | 			panic(err) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Init database queries | 	// Init database queries | ||||||
| 	for _, query := range initQuery { | 	for _, query := range initQuery { | ||||||
| 		if _, err := db.Exec(fmt.Sprintf(query, cfg.Table)); err != nil { | 		if _, err := db.Exec(context.Background(), fmt.Sprintf(query, cfg.Table)); err != nil { | ||||||
| 			_ = db.Close() | 			db.Close() | ||||||
|  |  | ||||||
| 			panic(err) | 			panic(err) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @@ -125,21 +97,19 @@ func New(config ...Config) *Storage { | |||||||
| 	return store | 	return store | ||||||
| } | } | ||||||
|  |  | ||||||
| var noRows = errors.New("sql: no rows in result set") |  | ||||||
|  |  | ||||||
| // Get value by key | // Get value by key | ||||||
| func (s *Storage) Get(key string) ([]byte, error) { | func (s *Storage) Get(key string) ([]byte, error) { | ||||||
| 	if len(key) <= 0 { | 	if len(key) <= 0 { | ||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
| 	row := s.db.QueryRow(s.sqlSelect, key) | 	row := s.db.QueryRow(context.Background(), s.sqlSelect, key) | ||||||
| 	// Add db response to data | 	// Add db response to data | ||||||
| 	var ( | 	var ( | ||||||
| 		data       = []byte{} | 		data []byte | ||||||
| 		exp  int64 = 0 | 		exp  int64 = 0 | ||||||
| 	) | 	) | ||||||
| 	if err := row.Scan(&data, &exp); err != nil { | 	if err := row.Scan(&data, &exp); err != nil { | ||||||
| 		if err == sql.ErrNoRows { | 		if errors.Is(err, pgx.ErrNoRows) { | ||||||
| 			return nil, nil | 			return nil, nil | ||||||
| 		} | 		} | ||||||
| 		return nil, err | 		return nil, err | ||||||
| @@ -163,7 +133,7 @@ func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | |||||||
| 	if exp != 0 { | 	if exp != 0 { | ||||||
| 		expSeconds = time.Now().Add(exp).Unix() | 		expSeconds = time.Now().Add(exp).Unix() | ||||||
| 	} | 	} | ||||||
| 	_, err := s.db.Exec(s.sqlInsert, key, val, expSeconds, val, expSeconds) | 	_, err := s.db.Exec(context.Background(), s.sqlInsert, key, val, expSeconds, val, expSeconds) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -173,24 +143,26 @@ func (s *Storage) Delete(key string) error { | |||||||
| 	if len(key) <= 0 { | 	if len(key) <= 0 { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| 	_, err := s.db.Exec(s.sqlDelete, key) | 	_, err := s.db.Exec(context.Background(), s.sqlDelete, key) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
| // Reset all entries, including unexpired | // Reset all entries, including unexpired | ||||||
| func (s *Storage) Reset() error { | func (s *Storage) Reset() error { | ||||||
| 	_, err := s.db.Exec(s.sqlReset) | 	_, err := s.db.Exec(context.Background(), s.sqlReset) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
|  |  | ||||||
| // Close the database | // Close the database | ||||||
| func (s *Storage) Close() error { | func (s *Storage) Close() error { | ||||||
| 	s.done <- struct{}{} | 	s.done <- struct{}{} | ||||||
| 	return s.db.Close() | 	s.db.Stat() | ||||||
|  | 	s.db.Close() | ||||||
|  | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
| // Return database client | // Return database client | ||||||
| func (s *Storage) Conn() *sql.DB { | func (s *Storage) Conn() *pgxpool.Pool { | ||||||
| 	return s.db | 	return s.db | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -210,13 +182,13 @@ func (s *Storage) gcTicker() { | |||||||
|  |  | ||||||
| // gc deletes all expired entries | // gc deletes all expired entries | ||||||
| func (s *Storage) gc(t time.Time) { | func (s *Storage) gc(t time.Time) { | ||||||
| 	_, _ = s.db.Exec(s.sqlGC, t.Unix()) | 	_, _ = s.db.Exec(context.Background(), s.sqlGC, t.Unix()) | ||||||
| } | } | ||||||
|  |  | ||||||
| func (s *Storage) checkSchema(tableName string) { | func (s *Storage) checkSchema(tableName string) { | ||||||
| 	var data []byte | 	var data []byte | ||||||
|  |  | ||||||
| 	row := s.db.QueryRow(fmt.Sprintf(checkSchemaQuery, tableName)) | 	row := s.db.QueryRow(context.Background(), fmt.Sprintf(checkSchemaQuery, tableName)) | ||||||
| 	if err := row.Scan(&data); err != nil { | 	if err := row.Scan(&data); err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -1,12 +1,13 @@ | |||||||
| package postgres | package postgres | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"database/sql" | 	"context" | ||||||
| 	"os" | 	"os" | ||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/gofiber/utils" | 	"github.com/gofiber/utils" | ||||||
|  | 	"github.com/jackc/pgx/v5" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var testStore = New(Config{ | var testStore = New(Config{ | ||||||
| @@ -133,9 +134,9 @@ func Test_Postgres_GC(t *testing.T) { | |||||||
| 	utils.AssertEqual(t, nil, err) | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
| 	testStore.gc(time.Now()) | 	testStore.gc(time.Now()) | ||||||
| 	row := testStore.db.QueryRow(testStore.sqlSelect, "john") | 	row := testStore.db.QueryRow(context.Background(), testStore.sqlSelect, "john") | ||||||
| 	err = row.Scan(nil, nil) | 	err = row.Scan(nil, nil) | ||||||
| 	utils.AssertEqual(t, sql.ErrNoRows, err) | 	utils.AssertEqual(t, pgx.ErrNoRows, err) | ||||||
|  |  | ||||||
| 	// This key should not expire | 	// This key should not expire | ||||||
| 	err = testStore.Set("john", testVal, 0) | 	err = testStore.Set("john", testVal, 0) | ||||||
| @@ -166,18 +167,14 @@ func Test_SslRequiredMode(t *testing.T) { | |||||||
| 		} | 		} | ||||||
| 	}() | 	}() | ||||||
| 	_ = New(Config{ | 	_ = New(Config{ | ||||||
| 		Database: "fiber", | 		Reset: true, | ||||||
| 		Username: "username", |  | ||||||
| 		Password: "password", |  | ||||||
| 		Reset:    true, |  | ||||||
| 		SslMode:  "require", |  | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  |  | ||||||
| func Test_Postgres_Close(t *testing.T) { |  | ||||||
| 	utils.AssertEqual(t, nil, testStore.Close()) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func Test_Postgres_Conn(t *testing.T) { | func Test_Postgres_Conn(t *testing.T) { | ||||||
| 	utils.AssertEqual(t, true, testStore.Conn() != nil) | 	utils.AssertEqual(t, true, testStore.Conn() != nil) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Test_Postgres_Close(t *testing.T) { | ||||||
|  | 	utils.AssertEqual(t, nil, testStore.Close()) | ||||||
|  | } | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ func (s *Storage) Set(key string, val []byte, exp time.Duration) error | |||||||
| func (s *Storage) Delete(key string) error | func (s *Storage) Delete(key string) error | ||||||
| func (s *Storage) Reset() error | func (s *Storage) Reset() error | ||||||
| func (s *Storage) Close() error | func (s *Storage) Close() error | ||||||
| func (s *Storage) Conn() *redis.Client | func (s *Storage) Conn() redis.UniversalClient | ||||||
| ``` | ``` | ||||||
| ### Installation | ### Installation | ||||||
| Redis 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: | Redis 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: | ||||||
| @@ -26,13 +26,13 @@ go mod init github.com/<user>/<repo> | |||||||
| ``` | ``` | ||||||
| And then install the redis implementation: | And then install the redis implementation: | ||||||
| ```bash | ```bash | ||||||
| go get github.com/gofiber/storage/redis | go get github.com/gofiber/storage/redis/v2 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Examples | ### Examples | ||||||
| Import the storage package. | Import the storage package. | ||||||
| ```go | ```go | ||||||
| import "github.com/gofiber/storage/redis" | import "github.com/gofiber/storage/redis/v2" | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| You can use the following possibilities to create a storage: | You can use the following possibilities to create a storage: | ||||||
| @@ -46,13 +46,23 @@ store := redis.New(redis.Config{ | |||||||
| 	Port:      6379, | 	Port:      6379, | ||||||
| 	Username:  "", | 	Username:  "", | ||||||
| 	Password:  "", | 	Password:  "", | ||||||
| 	URL:       "", |  | ||||||
| 	Database:  0, | 	Database:  0, | ||||||
| 	Reset:     false, | 	Reset:     false, | ||||||
| 	TLSConfig: nil, | 	TLSConfig: nil, | ||||||
| 	PoolSize:  10 * runtime.GOMAXPROCS(0), | 	PoolSize:  10 * runtime.GOMAXPROCS(0), | ||||||
| }) | }) | ||||||
|  |  | ||||||
|  | // Initialize Redis Failover Client | ||||||
|  | store := redis.New(redis.Config{ | ||||||
|  | 	MasterName:       "master-name", | ||||||
|  | 	Addrs:            []string{":6379"}, | ||||||
|  | }) | ||||||
|  |  | ||||||
|  | // Initialize Redis Cluster Client | ||||||
|  | store := redis.New(redis.Config{ | ||||||
|  | 	Addrs:            []string{":6379", ":6380"}, | ||||||
|  | }) | ||||||
|  |  | ||||||
| // or just the url with all information | // or just the url with all information | ||||||
| store = redis.New(redis.Config{ | store = redis.New(redis.Config{ | ||||||
|     URL:     "redis://<user>:<pass>@127.0.0.1:6379/<db>", |     URL:     "redis://<user>:<pass>@127.0.0.1:6379/<db>", | ||||||
| @@ -88,12 +98,37 @@ type Config struct { | |||||||
| 	// Optional. Default is 0 | 	// Optional. Default is 0 | ||||||
| 	Database int | 	Database int | ||||||
|  |  | ||||||
| 	// URL the standard format redis url to parse all other options. If this is set all other config options, Host, Port, Username, Password, Database have no effect. | 	// URL standard format Redis URL. If this is set all other config options, Host, Port, Username, Password, Database have no effect. | ||||||
| 	// | 	// | ||||||
| 	// Example: redis://<user>:<pass>@localhost:6379/<db> | 	// Example: redis://<user>:<pass>@localhost:6379/<db> | ||||||
| 	// Optional. Default is "" | 	// Optional. Default is "" | ||||||
| 	URL string | 	URL string | ||||||
|  |  | ||||||
|  | 	// Either a single address or a seed list of host:port addresses, this enables FailoverClient and ClusterClient | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is []string{} | ||||||
|  | 	Addrs []string | ||||||
|  |  | ||||||
|  | 	// MasterName is the sentinel master's name | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	MasterName string | ||||||
|  |  | ||||||
|  | 	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn. | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	ClientName string | ||||||
|  |  | ||||||
|  | 	// SentinelUsername | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	SentinelUsername string | ||||||
|  |  | ||||||
|  | 	// SentinelPassword | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	SentinelPassword string | ||||||
|  |  | ||||||
| 	// Reset clears any existing keys in existing Collection | 	// Reset clears any existing keys in existing Collection | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is false | 	// Optional. Default is false | ||||||
| @@ -109,20 +144,24 @@ type Config struct { | |||||||
| 	// Optional. Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS. | 	// Optional. Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS. | ||||||
| 	PoolSize int | 	PoolSize int | ||||||
| } | } | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ### Default Config | ### Default Config | ||||||
| ```go | ```go | ||||||
| var ConfigDefault = Config{ | var ConfigDefault = Config{ | ||||||
| 	Host:      "127.0.0.1", | 	Host:                  "127.0.0.1", | ||||||
| 	Port:      6379, | 	Port:                  6379, | ||||||
| 	Username:  "", | 	Username:              "", | ||||||
| 	Password:  "", | 	Password:              "", | ||||||
| 	URL:       "", | 	URL:                   "", | ||||||
| 	Database:  0, | 	Database:              0, | ||||||
| 	Reset:     false, | 	Reset:                 false, | ||||||
| 	TLSConfig: nil, | 	TLSConfig:             nil, | ||||||
| 	PoolSize:  10 * runtime.GOMAXPROCS(0), | 	PoolSize:              10 * runtime.GOMAXPROCS(0), | ||||||
|  | 	Addrs:                 []string{}, | ||||||
|  | 	MasterName:            "", | ||||||
|  | 	ClientName:            "", | ||||||
|  | 	SentinelUsername:      "", | ||||||
|  | 	SentinelPassword:      "", | ||||||
| } | } | ||||||
| ``` | ``` | ||||||
|   | |||||||
| @@ -32,43 +32,69 @@ type Config struct { | |||||||
| 	// Optional. Default is 0 | 	// Optional. Default is 0 | ||||||
| 	Database int | 	Database int | ||||||
|  |  | ||||||
| 	// URL the standard format redis url to parse all other options. If this is set all other config options, Host, Port, Username, Password, Database have no effect. | 	// URL standard format Redis URL. If this is set all other config options, Host, Port, Username, Password, Database have no effect. | ||||||
| 	// | 	// | ||||||
| 	// Example: redis://<user>:<pass>@localhost:6379/<db> | 	// Example: redis://<user>:<pass>@localhost:6379/<db> | ||||||
| 	// Optional. Default is "" | 	// Optional. Default is "" | ||||||
| 	URL string | 	URL string | ||||||
|  |  | ||||||
|  | 	// Either a single address or a seed list of host:port addresses, this enables FailoverClient and ClusterClient | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is []string{} | ||||||
|  | 	Addrs []string | ||||||
|  |  | ||||||
|  | 	// MasterName is the sentinel master's name | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	MasterName string | ||||||
|  |  | ||||||
|  | 	// ClientName will execute the `CLIENT SETNAME ClientName` command for each conn. | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	ClientName string | ||||||
|  |  | ||||||
|  | 	// SentinelUsername | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	SentinelUsername string | ||||||
|  |  | ||||||
|  | 	// SentinelPassword | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is "" | ||||||
|  | 	SentinelPassword string | ||||||
|  |  | ||||||
| 	// Reset clears any existing keys in existing Collection | 	// Reset clears any existing keys in existing Collection | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is false | 	// Optional. Default is false | ||||||
| 	Reset bool | 	Reset bool | ||||||
|  |  | ||||||
| 	// TLS Config to use. When set TLS will be negotiated. | 	// TLS Config to use. When set TLS will be negotiated. | ||||||
|  | 	// | ||||||
|  | 	// Optional. Default is nil | ||||||
| 	TLSConfig *tls.Config | 	TLSConfig *tls.Config | ||||||
|  |  | ||||||
| 	// Maximum number of socket connections. | 	// Maximum number of socket connections. | ||||||
| 	// | 	// | ||||||
| 	// Optional. Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS. | 	// Optional. Default is 10 connections per every available CPU as reported by runtime.GOMAXPROCS. | ||||||
| 	PoolSize int | 	PoolSize int | ||||||
|  |  | ||||||
| 	//////////////////////////////////// |  | ||||||
| 	// Adaptor related config options // |  | ||||||
| 	//////////////////////////////////// |  | ||||||
|  |  | ||||||
| 	// https://pkg.go.dev/github.com/go-redis/redis/v8#Options |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // ConfigDefault is the default config | // ConfigDefault is the default config | ||||||
| var ConfigDefault = Config{ | var ConfigDefault = Config{ | ||||||
| 	Host:      "127.0.0.1", | 	Host:             "127.0.0.1", | ||||||
| 	Port:      6379, | 	Port:             6379, | ||||||
| 	Username:  "", | 	Username:         "", | ||||||
| 	Password:  "", | 	Password:         "", | ||||||
| 	URL:       "", | 	URL:              "", | ||||||
| 	Database:  0, | 	Database:         0, | ||||||
| 	Reset:     false, | 	Reset:            false, | ||||||
| 	TLSConfig: nil, | 	TLSConfig:        nil, | ||||||
| 	PoolSize:  10 * runtime.GOMAXPROCS(0), | 	PoolSize:         10 * runtime.GOMAXPROCS(0), | ||||||
|  | 	Addrs:            []string{}, | ||||||
|  | 	MasterName:       "", | ||||||
|  | 	ClientName:       "", | ||||||
|  | 	SentinelUsername: "", | ||||||
|  | 	SentinelPassword: "", | ||||||
| } | } | ||||||
|  |  | ||||||
| // Helper function to set default values | // Helper function to set default values | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| module github.com/gofiber/storage/redis | module github.com/gofiber/storage/redis/v2 | ||||||
|  |  | ||||||
| go 1.18 | go 1.18 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| 	github.com/redis/go-redis/v9 v9.0.2 | 	github.com/redis/go-redis/v9 v9.0.5 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								redis/go.sum
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								redis/go.sum
									
									
									
									
									
								
							| @@ -1,14 +1,10 @@ | |||||||
| github.com/bsm/ginkgo/v2 v2.5.0 h1:aOAnND1T40wEdAtkGSkvSICWeQ8L3UASX7YVCqQx+eQ= | github.com/bsm/ginkgo/v2 v2.7.0 h1:ItPMPH90RbmZJt5GtkcNvIRuGEdwlBItdNVoyzaNQao= | ||||||
| github.com/bsm/gomega v1.20.0 h1:JhAwLmtRzXFTx2AkALSLa8ijZafntmhSoU63Ok18Uq8= | github.com/bsm/gomega v1.26.0 h1:LhQm+AFcgV2M0WyKroMASzAzCAJVpAxQXv4SaI9a69Y= | ||||||
| github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= | github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= | ||||||
| github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= | ||||||
| github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= |  | ||||||
| github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= | github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= | ||||||
| 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/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | github.com/redis/go-redis/v9 v9.0.5 h1:CuQcn5HIEeK7BgElubPP8CGtE0KakrnbBSTLjathl5o= | ||||||
| github.com/redis/go-redis/v9 v9.0.2 h1:BA426Zqe/7r56kCcvxYLWe1mkaz71LKF77GwgFzSxfE= | github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= | ||||||
| github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= |  | ||||||
| github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= |  | ||||||
| gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= |  | ||||||
|   | |||||||
| @@ -10,7 +10,7 @@ import ( | |||||||
|  |  | ||||||
| // Storage interface that is implemented by storage providers | // Storage interface that is implemented by storage providers | ||||||
| type Storage struct { | type Storage struct { | ||||||
| 	db *redis.Client | 	db redis.UniversalClient | ||||||
| } | } | ||||||
|  |  | ||||||
| // New creates a new redis storage | // New creates a new redis storage | ||||||
| @@ -18,31 +18,38 @@ func New(config ...Config) *Storage { | |||||||
| 	// Set default config | 	// Set default config | ||||||
| 	cfg := configDefault(config...) | 	cfg := configDefault(config...) | ||||||
|  |  | ||||||
| 	// Create new redis client | 	// Create new redis universal client | ||||||
| 	var options *redis.Options | 	var db redis.UniversalClient | ||||||
| 	var err error |  | ||||||
|  |  | ||||||
|  | 	// Parse the URL and update config values accordingly | ||||||
| 	if cfg.URL != "" { | 	if cfg.URL != "" { | ||||||
| 		options, err = redis.ParseURL(cfg.URL) | 		options, err := redis.ParseURL(cfg.URL) | ||||||
|  |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			panic(err) | 			panic(err) | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		options.TLSConfig = cfg.TLSConfig | 		// Update the config values with the parsed URL values | ||||||
| 		options.PoolSize = cfg.PoolSize | 		cfg.Username = options.Username | ||||||
| 	} else { | 		cfg.Password = options.Password | ||||||
| 		options = &redis.Options{ | 		cfg.Database = options.DB | ||||||
| 			Addr:      fmt.Sprintf("%s:%d", cfg.Host, cfg.Port), | 		cfg.Addrs = []string{options.Addr} | ||||||
| 			DB:        cfg.Database, | 	} else if len(cfg.Addrs) == 0 { | ||||||
| 			Username:  cfg.Username, | 		// Fallback to Host and Port values if Addrs is empty | ||||||
| 			Password:  cfg.Password, | 		cfg.Addrs = []string{fmt.Sprintf("%s:%d", cfg.Host, cfg.Port)} | ||||||
| 			TLSConfig: cfg.TLSConfig, |  | ||||||
| 			PoolSize:  cfg.PoolSize, |  | ||||||
| 		} |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	db := redis.NewClient(options) | 	db = redis.NewUniversalClient(&redis.UniversalOptions{ | ||||||
|  | 		Addrs:            cfg.Addrs, | ||||||
|  | 		MasterName:       cfg.MasterName, | ||||||
|  | 		ClientName:       cfg.ClientName, | ||||||
|  | 		SentinelUsername: cfg.SentinelUsername, | ||||||
|  | 		SentinelPassword: cfg.SentinelPassword, | ||||||
|  | 		DB:               cfg.Database, | ||||||
|  | 		Username:         cfg.Username, | ||||||
|  | 		Password:         cfg.Password, | ||||||
|  | 		TLSConfig:        cfg.TLSConfig, | ||||||
|  | 		PoolSize:         cfg.PoolSize, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
| 	// Test connection | 	// Test connection | ||||||
| 	if err := db.Ping(context.Background()).Err(); err != nil { | 	if err := db.Ping(context.Background()).Err(); err != nil { | ||||||
| @@ -62,6 +69,8 @@ func New(config ...Config) *Storage { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // ... | ||||||
|  |  | ||||||
| // Get value by key | // Get value by key | ||||||
| func (s *Storage) Get(key string) ([]byte, error) { | func (s *Storage) Get(key string) ([]byte, error) { | ||||||
| 	if len(key) <= 0 { | 	if len(key) <= 0 { | ||||||
| @@ -76,7 +85,6 @@ func (s *Storage) Get(key string) ([]byte, error) { | |||||||
|  |  | ||||||
| // Set key with value | // Set key with value | ||||||
| func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | ||||||
| 	// Ain't Nobody Got Time For That |  | ||||||
| 	if len(key) <= 0 || len(val) <= 0 { | 	if len(key) <= 0 || len(val) <= 0 { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| @@ -85,7 +93,6 @@ func (s *Storage) Set(key string, val []byte, exp time.Duration) error { | |||||||
|  |  | ||||||
| // Delete key by key | // Delete key by key | ||||||
| func (s *Storage) Delete(key string) error { | func (s *Storage) Delete(key string) error { | ||||||
| 	// Ain't Nobody Got Time For That |  | ||||||
| 	if len(key) <= 0 { | 	if len(key) <= 0 { | ||||||
| 		return nil | 		return nil | ||||||
| 	} | 	} | ||||||
| @@ -103,6 +110,6 @@ func (s *Storage) Close() error { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Return database client | // Return database client | ||||||
| func (s *Storage) Conn() *redis.Client { | func (s *Storage) Conn() redis.UniversalClient { | ||||||
| 	return s.db | 	return s.db | ||||||
| } | } | ||||||
|   | |||||||
| @@ -191,3 +191,164 @@ func Test_Redis_Initalize_WithURL_TLS(t *testing.T) { | |||||||
|  |  | ||||||
| 	utils.AssertEqual(t, nil, testStoreUrl.Close()) | 	utils.AssertEqual(t, nil, testStoreUrl.Close()) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Universal_Addrs(t *testing.T) { | ||||||
|  | 	// This should failover and create a Single Node connection. | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		Addrs: []string{"localhost:6379"}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Universal_With_URL_Undefined(t *testing.T) { | ||||||
|  | 	// This should failover to creating a regular *redis.Client | ||||||
|  | 	// The URL should get ignored since it's empty | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		URL:   "", | ||||||
|  | 		Addrs: []string{"localhost:6379"}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Universal_With_URL_Defined(t *testing.T) { | ||||||
|  | 	// This should failover to creating a regular *redis.Client | ||||||
|  | 	// The Addrs field should get ignored since URL is defined | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		URL:   "redis://localhost:6379", | ||||||
|  | 		Addrs: []string{"localhost:6355"}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Universal_With_HostPort(t *testing.T) { | ||||||
|  | 	// This should failover to creating a regular *redis.Client | ||||||
|  | 	// The Host and Port should get ignored since Addrs is defined | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		Host:  "localhost", | ||||||
|  | 		Port:  6388, | ||||||
|  | 		Addrs: []string{"localhost:6379"}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Universal_With_HostPort_And_URL(t *testing.T) { | ||||||
|  | 	// This should failover to creating a regular *redis.Client | ||||||
|  | 	// The Host and Port should get ignored since Addrs is defined | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		URL:   "redis://localhost:6379", | ||||||
|  | 		Host:  "localhost", | ||||||
|  | 		Port:  6388, | ||||||
|  | 		Addrs: []string{"localhost:6399"}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Test_Redis_Cluster(t *testing.T) { | ||||||
|  | 	testStoreUniversal := New(Config{ | ||||||
|  | 		Addrs: []string{ | ||||||
|  | 			"localhost:7000", | ||||||
|  | 			"localhost:7001", | ||||||
|  | 			"localhost:7002", | ||||||
|  | 			"localhost:7003", | ||||||
|  | 			"localhost:7004", | ||||||
|  | 			"localhost:7005", | ||||||
|  | 		}, | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	var ( | ||||||
|  | 		key = "bruce" | ||||||
|  | 		val = []byte("wayne") | ||||||
|  | 	) | ||||||
|  |  | ||||||
|  | 	err := testStoreUniversal.Set(key, val, 0) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	result, err := testStoreUniversal.Get(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  | 	utils.AssertEqual(t, val, result) | ||||||
|  |  | ||||||
|  | 	err = testStoreUniversal.Delete(key) | ||||||
|  | 	utils.AssertEqual(t, nil, err) | ||||||
|  |  | ||||||
|  | 	utils.AssertEqual(t, nil, testStoreUniversal.Close()) | ||||||
|  | } | ||||||
| @@ -4,7 +4,7 @@ go 1.18 | |||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/dgraph-io/ristretto v0.1.1 | 	github.com/dgraph-io/ristretto v0.1.1 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| ) | ) | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
|   | |||||||
| @@ -10,8 +10,8 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczC | |||||||
| github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= | github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= | ||||||
| github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= | github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= | ||||||
| github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= | github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= | ||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | ||||||
| github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= | github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= | ||||||
| github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= | github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								s3/go.mod
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								s3/go.mod
									
									
									
									
									
								
							| @@ -1,12 +1,30 @@ | |||||||
| module github.com/gofiber/storage/s3 | module github.com/gofiber/storage/s3 | ||||||
|  |  | ||||||
| go 1.16 | go 1.18 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/aws/aws-sdk-go-v2 v1.17.4 | 	github.com/aws/aws-sdk-go-v2 v1.18.0 | ||||||
| 	github.com/aws/aws-sdk-go-v2/config v1.18.13 | 	github.com/aws/aws-sdk-go-v2/config v1.18.25 | ||||||
| 	github.com/aws/aws-sdk-go-v2/credentials v1.13.13 | 	github.com/aws/aws-sdk-go-v2/credentials v1.13.24 | ||||||
| 	github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.53 | 	github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67 | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/s3 v1.30.3 | 	github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1 | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.0.1 | ||||||
| ) | ) | ||||||
|  |  | ||||||
|  | require ( | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 // indirect | ||||||
|  | 	github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 // indirect | ||||||
|  | 	github.com/aws/smithy-go v1.13.5 // indirect | ||||||
|  | 	github.com/jmespath/go-jmespath v0.4.0 // indirect | ||||||
|  | ) | ||||||
|   | |||||||
							
								
								
									
										64
									
								
								s3/go.sum
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								s3/go.sum
									
									
									
									
									
								
							| @@ -1,39 +1,39 @@ | |||||||
| github.com/aws/aws-sdk-go-v2 v1.17.4 h1:wyC6p9Yfq6V2y98wfDsj6OnNQa4w2BLGCLIxzNhwOGY= | github.com/aws/aws-sdk-go-v2 v1.18.0 h1:882kkTpSFhdgYRKVZ/VCgf7sd0ru57p2JCxz4/oN5RY= | ||||||
| github.com/aws/aws-sdk-go-v2 v1.17.4/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= | github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= | ||||||
| github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= | github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= | ||||||
| github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= | github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.18.13 h1:v0xlYqbO6/EVlM8tUn2QEOA7btQxcgidEq2JRDBPTho= | github.com/aws/aws-sdk-go-v2/config v1.18.25 h1:JuYyZcnMPBiFqn87L2cRppo+rNwgah6YwD3VuyvaW6Q= | ||||||
| github.com/aws/aws-sdk-go-v2/config v1.18.13/go.mod h1:r39wGSZB7wPDW1i54JyQXUpc5KsWjh5z/3S5D9eCqDg= | github.com/aws/aws-sdk-go-v2/config v1.18.25/go.mod h1:dZnYpD5wTW/dQF0rRNLVypB396zWCcPiBIvdvSWHEg4= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.13.13 h1:zw1KAc1kl00NYd3ofVmFrb09qnYlSQMeh+fmlQRAihI= | github.com/aws/aws-sdk-go-v2/credentials v1.13.24 h1:PjiYyls3QdCrzqUN35jMWtUK1vqVZ+zLfdOa/UPFDp0= | ||||||
| github.com/aws/aws-sdk-go-v2/credentials v1.13.13/go.mod h1:DW9nbIIF9MrIja0cBQrUpeWYQMSlNmP8fevLUyF9W38= | github.com/aws/aws-sdk-go-v2/credentials v1.13.24/go.mod h1:jYPYi99wUOPIFi0rhiOvXeSEReVOzBqFNOX5bXYoG2o= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22 h1:3aMfcTmoXtTZnaT86QlVaYh+BRMbvrrmZwIQ5jWqCZQ= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 h1:jJPgroehGvjrde3XufFIJUZVK5A2L9a3KwSFgKy9n8w= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.22/go.mod h1:YGSIJyQ6D6FjKMQh16hVFSIUD54L4F7zTGePqYMYYJU= | github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.53 h1:h1MmqGtYgkf49DhG2BSjGukpm8c+BJ9CL+bBbdFGzlk= | github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67 h1:fI9/5BDEaAv/pv1VO1X1n3jfP9it+IGqWsCuuBQI8wM= | ||||||
| github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.53/go.mod h1:mlWLxwKZNeEwE+3Pko07lSr1NvHZwUtdzmo9AiGn7QU= | github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67/go.mod h1:zQClPRIwQZfJlZq6WZve+s4Tb4JW+3V6eS+4+KrYeP8= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28 h1:r+XwaCLpIvCKjBIYy/HVZujQS9tsz5ohHG3ZIe0wKoE= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 h1:kG5eQilShqmJbv11XL1VpyDbaEJzWxd4zRiCG30GSn4= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.28/go.mod h1:3lwChorpIM/BhImY/hy+Z6jekmN92cXGPI1QJasVPYY= | github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22 h1:7AwGYXDdqRQYsluvKFmWoqpcOQJ4bH634SkYf3FNj/A= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 h1:vFQlirhuM8lLlpI7imKOMsjdQLuN9CPi+k44F/OFVsk= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.22/go.mod h1:EqK7gVrIGAHyZItrD1D8B0ilgwMD1GiWAmbU4u/JHNk= | github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29 h1:J4xhFd6zHhdF9jPP0FQJ6WknzBboGMBNjKOv4iTuw4A= | github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 h1:gGLG7yKaXG02/jBlg210R7VgQIotiQntNhsCFejawx8= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/ini v1.3.29/go.mod h1:TwuqRBGzxjQJIwH16/fOZodwXt2Zxa9/cwJC5ke4j7s= | github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.20 h1:YIvKIfPXQVp0EhXUV644kmQo6cQPPSRmC44A1HSoJeg= | github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25 h1:AzwRi5OKKwo4QNqPf7TjeO+tK8AyOK3GVSwmRPo7/Cs= | ||||||
| github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.20/go.mod h1:8W88sW3PjamQpKFUQvHWWKay6ARsNvZnzU7+a4apubw= | github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.25/go.mod h1:SUbB4wcbSEyCvqBxv/O/IBf93RbEze7U7OnoTlpPB+g= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= | github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.23 h1:c5+bNdV8E4fIPteWx4HZSkqI07oY9exbfQ7JH7Yx4PI= | github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28 h1:vGWm5vTpMr39tEZfQeDiDAMgk+5qsnvRny3FjLpnH5w= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.23/go.mod h1:1jcUfF+FAOEwtIcNiHPaV4TSoZqkUIPzrohmD7fb95c= | github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.28/go.mod h1:spfrICMD6wCAhjhzHuy6DOZZ+LAIY10UxhUmLzpJTTs= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22 h1:LjFQf8hFuMO22HkV5VWGLBvmCLBCLPivUAmpdpnp4Vs= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 h1:0iKliEXAcCa2qVtRs7Ot5hItA2MsufrphbRFlz1Owxo= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.22/go.mod h1:xt0Au8yPIwYXf/GYPy/vl4K3CgwhfQMYbrH7DlUUIws= | github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.22 h1:ISLJ2BKXe4zzyZ7mp5ewKECiw0U7KpLgS3S6OxY9Cm0= | github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2 h1:NbWkRxEEIRSCqxhsHQuMiTH7yo+JZW1gp8v3elSVMTQ= | ||||||
| github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.22/go.mod h1:QFVbqK54XArazLvn2wvWMRBi/jGrWii46qbr5DyPGjc= | github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.2/go.mod h1:4tfW5l4IAB32VWCDEBxCRtR9T4BWy4I4kr1spr8NgZM= | ||||||
| github.com/aws/aws-sdk-go-v2/service/s3 v1.30.3 h1:PVieHTwugdlHedlxLpYLQsOZAq736RScuEb/m4zhzc4= | github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1 h1:O+9nAy9Bb6bJFTpeNFtd9UfHbgxO1o4ZDAM9rQp5NsY= | ||||||
| github.com/aws/aws-sdk-go-v2/service/s3 v1.30.3/go.mod h1:XN3YcdmnWYZ3Hrnojvo5p2mc/wfF973nkq3ClXPDMHk= | github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1/go.mod h1:J9kLNzEiHSeGMyN7238EjJmBpCniVzFda75Gxl/NqB8= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.12.2 h1:EN102fWY7hI5u/2FPheTrwwMHkSXfl49RYkeEnJsrCU= | github.com/aws/aws-sdk-go-v2/service/sso v1.12.10 h1:UBQjaMTCKwyUYwiVnUt6toEJwGXsLBI6al083tpjJzY= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sso v1.12.2/go.mod h1:IgV8l3sj22nQDd5qcAGY0WenwCzCphqdbFOpfktZPrI= | github.com/aws/aws-sdk-go-v2/service/sso v1.12.10/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2 h1:f1lmlce7r13CX1BPyPqt9oh/H+uqOWc9367lDoGGwNQ= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10 h1:PkHIIJs8qvq0e5QybnZoG1K/9QTrLr9OsqCIo59jOBA= | ||||||
| github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.2/go.mod h1:O1YSOg3aekZibh2SngvCRRG+cRHKKlYgxf/JBF/Kr/k= | github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.10/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.18.3 h1:s49mSnsBZEXjfGBkRfmK+nPqzT7Lt3+t2SmAKNyHblw= | github.com/aws/aws-sdk-go-v2/service/sts v1.19.0 h1:2DQLAKDteoEDI8zpCzqBMaZlJuoE9iTYD0gFmXVax9E= | ||||||
| github.com/aws/aws-sdk-go-v2/service/sts v1.18.3/go.mod h1:b+psTJn33Q4qGoDaM7ZiOVVG8uVjGI6HaZ8WBHdgDgU= | github.com/aws/aws-sdk-go-v2/service/sts v1.19.0/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8= | ||||||
| github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= | github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= | ||||||
| github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= | github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= | ||||||
| github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| module github.com/gofiber/storage/sqlite3 | module github.com/gofiber/storage/sqlite3 | ||||||
|  |  | ||||||
| go 1.16 | go 1.17 | ||||||
|  |  | ||||||
| require ( | require ( | ||||||
| 	github.com/gofiber/utils v1.0.1 | 	github.com/gofiber/utils v1.1.0 | ||||||
| 	github.com/mattn/go-sqlite3 v1.14.16 | 	github.com/mattn/go-sqlite3 v1.14.17 | ||||||
| ) | ) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| github.com/gofiber/utils v1.0.1 h1:knct4cXwBipWQqFrOy1Pv6UcgPM+EXo9jDgc66V1Qio= | github.com/gofiber/utils v1.1.0 h1:vdEBpn7AzIUJRhe+CiTOJdUcTg4Q9RK+pEa0KPbLdrM= | ||||||
| github.com/gofiber/utils v1.0.1/go.mod h1:pacRFtghAE3UoknMOUiXh2Io/nLWSUHtQCi/3QASsOc= | github.com/gofiber/utils v1.1.0/go.mod h1:poZpsnhBykfnY1Mc0KeEa6mSHrS3dV0+oBWyeQmb2e0= | ||||||
| github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= | github.com/mattn/go-sqlite3 v1.14.17 h1:mCRHCLDUBXgpKAqIKsaAaAsrAlbkeomtRFKXh2L6YIM= | ||||||
| github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= | github.com/mattn/go-sqlite3 v1.14.17/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user