diff --git a/package-lock.json b/package-lock.json index b2c5c5f..020d329 100644 --- a/package-lock.json +++ b/package-lock.json @@ -143,8 +143,7 @@ "node_modules/@aut-labs/abi-types": { "version": "0.0.86-dev", "resolved": "https://registry.npmjs.org/@aut-labs/abi-types/-/abi-types-0.0.86-dev.tgz", - "integrity": "sha512-I9VNsYN8smW516wPQeDWhJaw4OWiIc7WxRBIn2GkqKw4oYKaLbDRzTV2XXVrMlvVCo7V82V51SlV+fC0Hajq/w==", - "license": "ISC" + "integrity": "sha512-I9VNsYN8smW516wPQeDWhJaw4OWiIc7WxRBIn2GkqKw4oYKaLbDRzTV2XXVrMlvVCo7V82V51SlV+fC0Hajq/w==" }, "node_modules/@aut-labs/connector": { "version": "0.0.203", @@ -177,7 +176,6 @@ "version": "0.0.221-dev", "resolved": "https://registry.npmjs.org/@aut-labs/sdk/-/sdk-0.0.221-dev.tgz", "integrity": "sha512-W6R0oneKaSvc9kYIicSoPvygP1c4UlWrWu884FtAPPrrRQpucEvo9NG2FzsKa/Ku+nKV6APf6YoG3Zjib1vLvQ==", - "license": "MIT", "dependencies": { "@aut-labs/abi-types": "^0.0.86-dev", "date-fns": "^2.29.3", @@ -3887,6 +3885,8 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -3916,6 +3916,8 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -3927,11 +3929,15 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-clean/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -3940,6 +3946,8 @@ }, "node_modules/@react-native-community/cli-clean/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -3964,6 +3972,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -3993,6 +4003,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4004,6 +4016,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, @@ -4034,6 +4048,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4042,6 +4058,8 @@ }, "node_modules/@react-native-community/cli-config/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4092,6 +4110,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4121,6 +4141,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4132,11 +4154,15 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-doctor/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4167,6 +4193,8 @@ }, "node_modules/@react-native-community/cli-doctor/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4202,6 +4230,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4231,6 +4261,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4242,11 +4274,15 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-platform-android/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4255,6 +4291,8 @@ }, "node_modules/@react-native-community/cli-platform-android/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4279,6 +4317,8 @@ }, "node_modules/@react-native-community/cli-platform-apple/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4308,6 +4348,8 @@ }, "node_modules/@react-native-community/cli-platform-apple/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4319,11 +4361,15 @@ }, "node_modules/@react-native-community/cli-platform-apple/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-platform-apple/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4332,6 +4378,8 @@ }, "node_modules/@react-native-community/cli-platform-apple/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4390,6 +4438,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4419,6 +4469,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4430,11 +4482,15 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-server-api/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4462,6 +4518,8 @@ }, "node_modules/@react-native-community/cli-server-api/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4498,6 +4556,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4527,6 +4587,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4538,11 +4600,15 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli-tools/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4562,6 +4628,8 @@ }, "node_modules/@react-native-community/cli-tools/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4581,6 +4649,8 @@ }, "node_modules/@react-native-community/cli/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4610,6 +4680,8 @@ }, "node_modules/@react-native-community/cli/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4621,11 +4693,15 @@ }, "node_modules/@react-native-community/cli/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/@react-native-community/cli/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -4645,6 +4721,8 @@ }, "node_modules/@react-native-community/cli/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -4754,6 +4832,8 @@ }, "node_modules/@react-native/codegen/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -4781,6 +4861,8 @@ }, "node_modules/@react-native/codegen/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -4792,6 +4874,8 @@ }, "node_modules/@react-native/codegen/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, @@ -6115,6 +6199,8 @@ }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "peer": true, @@ -6146,6 +6232,8 @@ }, "node_modules/@testing-library/dom/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "peer": true, @@ -6158,12 +6246,16 @@ }, "node_modules/@testing-library/dom/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@testing-library/dom/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "peer": true, @@ -6173,6 +6265,8 @@ }, "node_modules/@testing-library/dom/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "peer": true, @@ -6205,6 +6299,8 @@ }, "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -6231,6 +6327,8 @@ }, "node_modules/@testing-library/jest-dom/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6242,6 +6340,8 @@ }, "node_modules/@testing-library/jest-dom/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, @@ -6252,6 +6352,8 @@ }, "node_modules/@testing-library/jest-dom/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -6260,6 +6362,8 @@ }, "node_modules/@testing-library/jest-dom/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -6306,6 +6410,8 @@ }, "node_modules/@testing-library/react/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -6343,6 +6449,8 @@ }, "node_modules/@testing-library/react/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6354,11 +6462,15 @@ }, "node_modules/@testing-library/react/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/@testing-library/react/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -6367,6 +6479,8 @@ }, "node_modules/@testing-library/react/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -9158,6 +9272,8 @@ }, "node_modules/color/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -9168,6 +9284,8 @@ }, "node_modules/color/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/colorette": { @@ -11004,6 +11122,8 @@ }, "node_modules/fsevents": { "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "license": "MIT", "optional": true, "os": [ @@ -12051,6 +12171,8 @@ }, "node_modules/jest-message-util/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -12080,6 +12202,8 @@ }, "node_modules/jest-message-util/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -12091,11 +12215,15 @@ }, "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12128,6 +12256,8 @@ }, "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -12168,6 +12298,8 @@ }, "node_modules/jest-util/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -12197,6 +12329,8 @@ }, "node_modules/jest-util/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -12208,11 +12342,15 @@ }, "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12221,6 +12359,8 @@ }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -12248,6 +12388,8 @@ }, "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -12277,6 +12419,8 @@ }, "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -12288,11 +12432,15 @@ }, "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12325,6 +12473,8 @@ }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -12350,6 +12500,8 @@ }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12447,6 +12599,8 @@ }, "node_modules/jscodeshift/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -12476,6 +12630,8 @@ }, "node_modules/jscodeshift/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -12487,11 +12643,15 @@ }, "node_modules/jscodeshift/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12500,6 +12660,8 @@ }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -12873,6 +13035,8 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -12902,6 +13066,8 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -12913,11 +13079,15 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -12926,6 +13096,8 @@ }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -13398,6 +13570,8 @@ }, "node_modules/metro/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -13445,6 +13619,8 @@ }, "node_modules/metro/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -13456,6 +13632,8 @@ }, "node_modules/metro/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, @@ -13469,6 +13647,8 @@ }, "node_modules/metro/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -13495,6 +13675,8 @@ }, "node_modules/metro/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -14225,6 +14407,8 @@ }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -14254,6 +14438,8 @@ }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -14265,11 +14451,15 @@ }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -14278,6 +14468,8 @@ }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -15136,6 +15328,8 @@ }, "node_modules/react-native/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "peer": true, "dependencies": { @@ -15178,6 +15372,8 @@ }, "node_modules/react-native/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "peer": true, "dependencies": { @@ -15189,11 +15385,15 @@ }, "node_modules/react-native/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT", "peer": true }, "node_modules/react-native/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "peer": true, "engines": { @@ -15245,6 +15445,8 @@ }, "node_modules/react-native/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "peer": true, "dependencies": { @@ -15765,6 +15967,8 @@ }, "node_modules/rollup-plugin-visualizer/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -15790,6 +15994,8 @@ }, "node_modules/rollup-plugin-visualizer/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -15800,6 +16006,8 @@ }, "node_modules/rollup-plugin-visualizer/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/rollup-plugin-visualizer/node_modules/open": { @@ -16002,6 +16210,8 @@ }, "node_modules/sass-embedded/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -17665,6 +17875,8 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -17678,6 +17890,8 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -17688,6 +17902,8 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/wrappy": { diff --git a/src/api/environment.ts b/src/api/environment.ts index 9ca7008..63b4f46 100644 --- a/src/api/environment.ts +++ b/src/api/environment.ts @@ -19,7 +19,11 @@ export const swEnvVariables = { // IPFS storage ipfsApiKey: "VITE_IPFS_API_KEY", ipfsApiSecret: "VITE_IPFS_API_SECRET", - ipfsGatewayUrl: "VITE_IPFS_GATEWAY_URL" + ipfsGatewayUrl: "VITE_IPFS_GATEWAY_URL", + + discordClientId: "VITE_DISCORD_CLIENT_ID", + twitterClientId: "VITE_TWITTER_CLIENT_ID", + githubClientId: "VITE_GITHUB_CLIENT_ID" }; export const environment: typeof swEnvVariables = diff --git a/src/components/AutEditProfileDialog.tsx b/src/components/AutEditProfileDialog.tsx index 8f00c54..be844c7 100644 --- a/src/components/AutEditProfileDialog.tsx +++ b/src/components/AutEditProfileDialog.tsx @@ -24,7 +24,7 @@ import { AutTextField } from "@theme/field-text-styles"; import { ipfsCIDToHttpUrl } from "@utils/ipfs"; import { base64toFile, toBase64 } from "@utils/to-base-64"; import AutOsFileUpload from "./Fields/AutOsFileUpload"; -import { useOAuth } from "@components/OAuth"; +import { useOAuth, useOAuthSocials } from "@components/OAuth"; import { SelectedAutID } from "@store/aut/aut.reducer"; import { useSelector } from "react-redux"; import { AutOSAutID } from "@api/models/aut.model"; @@ -143,7 +143,7 @@ export enum SocialLinkPrefixes { function AutEditProfileDialog(props: EditDialogProps) { const { getAuthGithub, getAuthX, getAuthDiscord, authenticating } = - useOAuth(); + useOAuthSocials(); const theme = useTheme(); const desktop = useMediaQuery(theme.breakpoints.up("md")); const dispatch = useAppDispatch(); @@ -207,6 +207,14 @@ function AutEditProfileDialog(props: EditDialogProps) { }; const onEditProfile = async (data: any) => { + // const updatedSocials = data.socials.map((social) => { + // if (social.type === "discord") { + // return { link: "", type: "discord" }; + // } + // return social; + // }); + // // eslint-disable-next-line no-debugger + // debugger; await dispatch( updateProfile({ ...autID, @@ -432,13 +440,17 @@ function AutEditProfileDialog(props: EditDialogProps) { ); const responseData = await response.json(); - const username = responseData.username; + const { username, id } = responseData; onChange(username); const fullLink = `${SocialLinkPrefixes.Discord}${username}`; setValue( `socials.${index}.link`, fullLink ); + setValue(`socials.${index}.metadata`, { + userId: id, + username + }); }, () => { // setLoading(false); diff --git a/src/components/OAuth/index.tsx b/src/components/OAuth/index.tsx index 65251e1..6bcad6f 100644 --- a/src/components/OAuth/index.tsx +++ b/src/components/OAuth/index.tsx @@ -1,4 +1,3 @@ - import { environment } from "@api/environment"; import axios from "axios"; import { useCallback, useState, useRef } from "react"; @@ -27,12 +26,89 @@ const cleanup = (intervalRef, popupRef, handleMessageListener) => { window.removeEventListener("message", handleMessageListener); }; +const xCleanUp = (xIntervalRef) => { + if (xIntervalRef.current) { + clearInterval(xIntervalRef.current); + } +}; + export const useOAuth = () => { const [authenticating, setAuthenticating] = useState(false); const [finsihedFlow, setFinishedFlow] = useState(false); const popupRef = useRef(); const intervalRef = useRef>(); + const getAuth = useCallback(async (onSuccess, onFailure) => { + setAuthenticating(true); + if (popupRef.current && !popupRef.current.closed) { + popupRef.current.close(); + } + + const callbackUrl = encodeURI(`${window.location.origin}/callback`); + popupRef.current = openPopup( + `https://discord.com/oauth2/authorize?response_type=code&client_id=1080508975780474900&scope=guilds&state=15773059ghq9183habn&redirect_uri=${callbackUrl}&prompt=consent` + ) as any; + + async function handleMessageListener(message) { + try { + const type = message && message.data && message.data.type; + if (type === "OAUTH_RESPONSE") { + console.log("RECEIVE MESSAGE"); + const error = message && message.data && message.data.error; + if (error) { + onFailure(error); + } else { + const response = await axios.post( + `${environment.apiUrl}/aut/config/oauth2AccessToken`, + { + code: message.data.payload.code, + callbackUrl + } + ); + setAuthenticating(false); + clearInterval(intervalRef.current); + popupRef.current.close(); + onSuccess(response.data); + cleanup(intervalRef, popupRef, handleMessageListener); + } + } + } catch (genericError) { + onFailure(genericError); + console.error(genericError); + } + } + window.addEventListener("message", handleMessageListener); + + //Check for abrupt closing of popup + intervalRef.current = setInterval(() => { + const popupClosed = + !popupRef.current || + !(popupRef.current as any).window || + (popupRef.current as any).window.closed; + if (popupClosed) { + setAuthenticating(false); + clearInterval(intervalRef.current); + window.removeEventListener("message", handleMessageListener); + onFailure(); + } + }, 550); + + return () => { + setAuthenticating(false); + cleanup(intervalRef, popupRef, handleMessageListener); + }; + }, []); + + return { getAuth, authenticating }; +}; + +export const useOAuthSocials = () => { + const [authenticating, setAuthenticating] = useState(false); + const [finsihedFlow, setFinishedFlow] = useState(false); + const popupRef = useRef(); + const intervalRef = useRef>(); + const xIntervalRef = useRef>(); + const getAuthDiscord = useCallback(async (onSuccess, onFailure) => { setAuthenticating(true); if (popupRef.current && !popupRef.current.closed) { @@ -41,7 +117,7 @@ export const useOAuth = () => { const callbackUrl = encodeURI(`${window.location.origin}/callback`); popupRef.current = openPopup( - `https://discord.com/oauth2/authorize?response_type=code&client_id=1080508975780474900&scope=identify%20guilds&state=15773059ghq9183habn&redirect_uri=${callbackUrl}&prompt=consent` + `https://discord.com/oauth2/authorize?client_id=${environment.discordClientId}&response_type=code&redirect_uri=${callbackUrl}&scope=identify+guilds` ) as any; async function handleMessageListener(message) { @@ -94,6 +170,7 @@ export const useOAuth = () => { }, []); const getAuthX = useCallback(async (onSuccess, onFailure) => { + localStorage.removeItem("OAUTH_RESPONSE"); setAuthenticating(true); if (popupRef.current && !popupRef.current.closed) { popupRef.current.close(); @@ -101,7 +178,7 @@ export const useOAuth = () => { const callbackUrl = encodeURI(`${window.location.origin}/callback`); popupRef.current = openPopup( - `https://twitter.com/i/oauth2/authorize?response_type=code&client_id=YWRmaEY4LU9aSkRXd2NoZlpiLVU6MTpjaQ&state=state&scope=tweet.read%20offline.access&redirect_uri=${callbackUrl}&code_challenge=challenge&code_challenge_method=plain` + `https://twitter.com/i/oauth2/authorize?response_type=code&client_id=${environment.twitterClientId}&state=state&scope=tweet.read%20offline.access&redirect_uri=${callbackUrl}&code_challenge=challenge&code_challenge_method=plain` ) as any; async function handleMessageListener(message) { @@ -112,6 +189,7 @@ export const useOAuth = () => { if (error) { onFailure(error); } else { + xCleanUp(xIntervalRef); const response = await axios.post( `${environment.apiUrl}/aut/config/oauth2AccessTokenX`, { @@ -119,6 +197,7 @@ export const useOAuth = () => { callbackUrl } ); + setAuthenticating(false); clearInterval(intervalRef.current); popupRef.current.close(); @@ -147,9 +226,39 @@ export const useOAuth = () => { } }, 550); + xIntervalRef.current = setInterval(async () => { + const oauthResponse = JSON.parse(localStorage.getItem("OAUTH_RESPONSE")); + if (oauthResponse) { + cleanup(intervalRef, popupRef, handleMessageListener); + localStorage.removeItem("OAUTH_RESPONSE"); + try { + if (oauthResponse.error) { + onFailure(oauthResponse.error); + } else { + const response = await axios.post( + `${environment.apiUrl}/aut/config/oauth2AccessTokenX`, + { + code: oauthResponse.payload.code, + callbackUrl + } + ); + + setAuthenticating(false); + popupRef.current.close(); + onSuccess(response.data); + xCleanUp(xIntervalRef); + } + } catch (genericError) { + onFailure(genericError); + console.error(genericError); + } + } + }, 550); + return () => { setAuthenticating(false); cleanup(intervalRef, popupRef, handleMessageListener); + xCleanUp(xIntervalRef); }; }, []); @@ -161,7 +270,7 @@ export const useOAuth = () => { const callbackUrl = encodeURI(`${window.location.origin}/callback`); popupRef.current = openPopup( - `https://github.com/login/oauth/authorize?response_type=code&client_id=796be80cc5997ad5b9e6&state=state&scope=read:user&redirect_uri=${callbackUrl}` + `https://github.com/login/oauth/authorize?response_type=code&client_id=${environment.githubClientId}&state=state&scope=read:user&redirect_uri=${callbackUrl}` ) as any; async function handleMessageListener(message) { diff --git a/src/pages/AutID/AutHub/AutHubContributionsTable.tsx b/src/pages/AutID/AutHub/AutHubContributionsTable.tsx index abb0b3d..bd7a985 100644 --- a/src/pages/AutID/AutHub/AutHubContributionsTable.tsx +++ b/src/pages/AutID/AutHub/AutHubContributionsTable.tsx @@ -231,19 +231,22 @@ export const AutHubTasksTable = ({ header }) => { take: 1000 } }); - useEffect(() => { - if (!contributions.length) { - const updatedContributions = data?.map((item) => ({ - ...item, - contributionType: "open", - status: TaskStatus.Created, - id: generateRandomId() - })); - dispatch( - updateContributionState({ contributions: updatedContributions }) - ); - } - }, [data]); + useEffect(() => { + if (!contributions.length) { + const updatedContributions = data?.map((item) => ({ + ...item, + contributionType: (item.properties as any) + .tweetUrl + ? "retweet" + : "open", + status: TaskStatus.Created, + id: generateRandomId() + })); + dispatch( + updateContributionState({ contributions: updatedContributions }) + ); + } + }, [data]); const theme = useTheme(); return ( diff --git a/src/pages/Oauth2/Callback.tsx b/src/pages/Oauth2/Callback.tsx index 42fec52..c297017 100644 --- a/src/pages/Oauth2/Callback.tsx +++ b/src/pages/Oauth2/Callback.tsx @@ -10,9 +10,12 @@ const Callback = () => { useEffect(() => { const payload = queryToObject(window.location.search.split("?")[1]); const error = payload && payload.error; - - if (!window.opener) { - throw new Error("No window opener"); + if (!window.opener && !error) { + localStorage.setItem("OAUTH_RESPONSE", JSON.stringify({ payload })); + window.close(); + } else if (!window.opener && error) { + localStorage.setItem("OAUTH_RESPONSE", JSON.stringify({ error })); + window.close(); } if (error) { window.opener.postMessage({ @@ -20,17 +23,18 @@ const Callback = () => { error: decodeURI(error) || "OAuth2 error: An error has occured." }); } else { + console.log("POST MESSAGE"); + // localStorage.setItem("OAUTH_RESPONSE", JSON.stringify({ payload })); window.opener.postMessage({ type: "OAUTH_RESPONSE", payload }); } - // window.close(); }, []); return (
- +
); }; diff --git a/src/pages/Tasks/Contributions/Contributions.tsx b/src/pages/Tasks/Contributions/Contributions.tsx index d72d515..1b073ab 100644 --- a/src/pages/Tasks/Contributions/Contributions.tsx +++ b/src/pages/Tasks/Contributions/Contributions.tsx @@ -9,6 +9,7 @@ import DiscordTask from "../DiscordTask/DiscordTask"; import QuizTask from "../QuizTask/QuizTask"; import { useParams } from "react-router-dom"; import useQueryContributions from "@utils/hooks/GetContributions"; +import TwitterTask from "../TwitterTask/TwitterTask"; const Contributions = () => { let contribution = useSelector(SelectedContribution); @@ -29,6 +30,9 @@ const Contributions = () => { {contribution?.contributionType === "quiz" && ( )} + {contribution?.contributionType === "retweet" && ( + + )} ); }; diff --git a/src/pages/Tasks/DiscordTask/DiscordTask.tsx b/src/pages/Tasks/DiscordTask/DiscordTask.tsx index a537610..ff497c1 100644 --- a/src/pages/Tasks/DiscordTask/DiscordTask.tsx +++ b/src/pages/Tasks/DiscordTask/DiscordTask.tsx @@ -16,7 +16,7 @@ import { StepperButton } from "@components/StepperButton"; import { useAccount } from "wagmi"; import { AutOsButton } from "@components/AutButton"; import { TaskStatus } from "@store/model"; -import { useOAuth } from "@components/OAuth"; +import { useOAuth, useOAuthSocials } from "@components/OAuth"; import { updateContributionById } from "@store/contributions/contributions.reducer"; import SubmitDialog from "@components/Dialog/SubmitDialog"; @@ -29,13 +29,12 @@ const JoinDiscordTask = ({ contribution }: any) => { const { address: userAddress } = useAccount(); // const isAdmin = useSelector(IsAdmin); const isAdmin = false; - const { getAuthDiscord, authenticating } = useOAuth(); + const { getAuthDiscord, authenticating } = useOAuthSocials(); const [joinClicked, setJoinClicked] = useState(false); const [openSubmitSuccess, setOpenSubmitSuccess] = useState(false); const navigate = useNavigate(); const { autAddress, hubAddress } = useParams(); - // const { task, isLoading: isLoadingTasks } = useGetAllTasksPerQuestQuery( // { // userAddress, diff --git a/src/pages/Tasks/TwitterTask/TwitterTask.tsx b/src/pages/Tasks/TwitterTask/TwitterTask.tsx new file mode 100644 index 0000000..2eef2df --- /dev/null +++ b/src/pages/Tasks/TwitterTask/TwitterTask.tsx @@ -0,0 +1,267 @@ +import { memo, useState } from "react"; +import { + Box, + Card, + CardContent, + Container, + Link, + Stack, + Typography +} from "@mui/material"; +import { useSearchParams, useParams, useNavigate } from "react-router-dom"; +import { useDispatch } from "react-redux"; +import { TaskStatus } from "@store/model"; +import { updateContributionById } from "@store/contributions/contributions.reducer"; +import { AutOsButton } from "@components/AutButton"; +import TaskDetails from "../Shared/TaskDetails"; +import SubmitDialog from "@components/Dialog/SubmitDialog"; +import AutLoading from "@components/AutLoading"; +import { useOAuthSocials } from "@components/OAuth"; +import { useAccount } from "wagmi"; +import { useMutation } from "@tanstack/react-query"; +import axios from "axios"; +import { environment } from "@api/environment"; + +const TwitterSubmitContent = ({ contribution, userAddress }) => { + const [loading, setLoading] = useState(false); + const dispatch = useDispatch(); + const [searchParams] = useSearchParams(); + const navigate = useNavigate(); + const [openSubmitSuccess, setOpenSubmitSuccess] = useState(false); + const { autAddress, hubAddress } = useParams(); + const { getAuthX } = useOAuthSocials(); + + const { mutateAsync: verifyTetweetTask } = useMutation({ + mutationFn: (verifyRetweetRequest) => { + return axios + .post( + `${environment.apiUrl}/task/twitter/retweet`, + verifyRetweetRequest + ) + .then((res) => res.data); + } + }); + + const handleSubmit = async () => { + await getAuthX( + async (data) => { + const { access_token } = data; + setLoading(true); + try { + await verifyTetweetTask( + { + accessToken: access_token, + contributionId: contribution?.id, + tweetUrl: contribution.properties?.tweetUrl + }, + { + onSuccess: (response) => { + dispatch( + updateContributionById({ + id: contribution?.id, + data: { + ...contribution, + status: TaskStatus.Submitted, + submission: { + properties: { + twitterToken: access_token + } + } + } + }) + ); + + setOpenSubmitSuccess(true); + setLoading(false); + }, + onError: (res) => { + console.error("Failed to submit contribution:", res); + } + } + ); + } catch (error) { + setLoading(false); + // Handle error case + console.error("Failed to submit contribution:", error); + } + }, + () => { + setLoading(false); + // Handle auth failure + } + ); + }; + + return ( + + { + if (!loading) { + setOpenSubmitSuccess(false); + navigate({ + pathname: `/${autAddress}/hub/${hubAddress}`, + search: searchParams.toString() + }); + } + }} + /> + + {contribution?.status === TaskStatus.Created || + contribution?.status === TaskStatus.Taken ? ( + + + + {contribution?.description} + + + + + {contribution.properties?.tweetUrl} + + + + + Please authenticate with Twitter to verify your contribution + + + + + Claim + + + + + ) : ( + + + + + {contribution?.description} + + + Contribution Description + + + + + )} + + ); +}; + +const TwitterTask = ({ contribution }) => { + const { address: userAddress } = useAccount(); + + return ( + + {contribution ? ( + <> + + + + ) : ( + + )} + + ); +}; + +export default memo(TwitterTask); diff --git a/src/utils/format-contribution-type.tsx b/src/utils/format-contribution-type.tsx index f88869e..f7dd1ad 100644 --- a/src/utils/format-contribution-type.tsx +++ b/src/utils/format-contribution-type.tsx @@ -1,29 +1,33 @@ export const formatContributionType = (type: string) => { - switch (type) { - case "discord": - return "Discord"; - case "open": - return "Open Task"; - case "quiz": - return "Quiz"; - case "github": - return "GitHub"; - default: - return type; - } - }; + switch (type) { + case "discord": + return "Discord"; + case "open": + return "Open Task"; + case "quiz": + return "Quiz"; + case "github": + return "GitHub"; + case "retweet": + return "Retweet"; + default: + return type; + } +}; - export const getContributionTypeSubtitle = (type: string) => { - switch (type) { - case "discord": - return "Join Discord Task"; - case "open": - return "Open Task"; - case "quiz": - return "Quiz Task"; - case "github": - return "GitHub Task"; - default: - return type; - } - }; \ No newline at end of file +export const getContributionTypeSubtitle = (type: string) => { + switch (type) { + case "discord": + return "Join Discord Task"; + case "open": + return "Open Task"; + case "quiz": + return "Quiz Task"; + case "github": + return "GitHub Task"; + case "retweet": + return "Retweet Task"; + default: + return type; + } +}; diff --git a/yarn.lock b/yarn.lock index 8ac38e6..22952db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4603,6 +4603,8 @@ fs.realpath@^1.0.0: fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: version "1.1.2"