Trop gros commit parce que ça fait trop longtemps

que j'avais rien mit
typescript^2
Alban GUILHOT 2 years ago
parent 4a98ef5afe
commit 43ce1dc6af

@ -1,6 +1,12 @@
import React from 'react'
import MainTabNavigator from './src/navigation/AppNavigator'
import store from './src/redux/store'
import { Provider } from 'react-redux'
export default function App() {
return <MainTabNavigator/>
return(
<Provider store={store}>
<MainTabNavigator/>
</Provider>
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

@ -8,7 +8,7 @@
"name": "bob_party",
"version": "1.0.0",
"dependencies": {
"@react-native-picker/picker": "^2.4.8",
"@react-native-community/datetimepicker": "6.2.0",
"@react-navigation/bottom-tabs": "^6.4.0",
"@react-navigation/native": "^6.0.13",
"@react-navigation/stack": "^6.3.2",
@ -20,6 +20,7 @@
"react": "18.0.0",
"react-dom": "18.0.0",
"react-native": "^0.69.6",
"react-native-date-picker": "^4.2.5",
"react-native-dialog": "^9.2.2",
"react-native-dialog-input": "^1.0.8",
"react-native-gesture-handler": "~2.5.0",
@ -3533,21 +3534,21 @@
}
},
"node_modules/@jest/expect-utils": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.1.2.tgz",
"integrity": "sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz",
"integrity": "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==",
"dev": true,
"dependencies": {
"jest-get-type": "^29.0.0"
"jest-get-type": "^29.2.0"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/@jest/expect-utils/node_modules/jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@ -5700,13 +5701,12 @@
"node": ">=8"
}
},
"node_modules/@react-native-picker/picker": {
"version": "2.4.8",
"resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz",
"integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==",
"peerDependencies": {
"react": ">=16",
"react-native": ">=0.57"
"node_modules/@react-native-community/datetimepicker": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.2.0.tgz",
"integrity": "sha512-w1ZS+wYO3qSASliRp+B7mPphOhtVm++rhSbj1WsgXdgLgDXSkDxpMnAXXQu9M0XdcgBwVJ6wDExeIwuzU5Jtfg==",
"dependencies": {
"invariant": "^2.2.4"
}
},
"node_modules/@react-native/assets": {
@ -6019,9 +6019,9 @@
}
},
"node_modules/@types/jest/node_modules/pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -6136,9 +6136,9 @@
}
},
"node_modules/@xmldom/xmldom": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
"integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ==",
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz",
"integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg==",
"engines": {
"node": ">=10.0.0"
}
@ -6177,9 +6177,9 @@
}
},
"node_modules/acorn": {
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
"integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
"bin": {
"acorn": "bin/acorn"
},
@ -6385,9 +6385,9 @@
}
},
"node_modules/ast-types/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/astral-regex": {
"version": "1.0.0",
@ -6865,9 +6865,9 @@
}
},
"node_modules/bplist-parser": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
"integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
"integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"dependencies": {
"big-integer": "1.6.x"
},
@ -8000,9 +8000,9 @@
}
},
"node_modules/diff-sequences": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz",
"integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz",
"integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@ -8388,25 +8388,25 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/expect": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.1.2.tgz",
"integrity": "sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz",
"integrity": "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==",
"dev": true,
"dependencies": {
"@jest/expect-utils": "^29.1.2",
"jest-get-type": "^29.0.0",
"jest-matcher-utils": "^29.1.2",
"jest-message-util": "^29.1.2",
"jest-util": "^29.1.2"
"@jest/expect-utils": "^29.2.2",
"jest-get-type": "^29.2.0",
"jest-matcher-utils": "^29.2.2",
"jest-message-util": "^29.2.1",
"jest-util": "^29.2.1"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/expect/node_modules/@jest/types": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
"integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz",
"integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -8488,21 +8488,21 @@
}
},
"node_modules/expect/node_modules/jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/expect/node_modules/jest-util": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.1.2.tgz",
"integrity": "sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz",
"integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==",
"dev": true,
"dependencies": {
"@jest/types": "^29.1.2",
"@jest/types": "^29.2.1",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
@ -9274,9 +9274,9 @@
}
},
"node_modules/graphql-tag/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/growly": {
"version": "1.3.0",
@ -10563,15 +10563,15 @@
}
},
"node_modules/jest-diff": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.1.2.tgz",
"integrity": "sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz",
"integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^29.0.0",
"jest-get-type": "^29.0.0",
"pretty-format": "^29.1.2"
"diff-sequences": "^29.2.0",
"jest-get-type": "^29.2.0",
"pretty-format": "^29.2.1"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@ -10636,18 +10636,18 @@
}
},
"node_modules/jest-diff/node_modules/jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/jest-diff/node_modules/pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -11307,15 +11307,15 @@
}
},
"node_modules/jest-matcher-utils": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz",
"integrity": "sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz",
"integrity": "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^29.1.2",
"jest-get-type": "^29.0.0",
"pretty-format": "^29.1.2"
"jest-diff": "^29.2.1",
"jest-get-type": "^29.2.0",
"pretty-format": "^29.2.1"
},
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
@ -11380,18 +11380,18 @@
}
},
"node_modules/jest-matcher-utils/node_modules/jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true,
"engines": {
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
"node_modules/jest-matcher-utils/node_modules/pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -11433,18 +11433,18 @@
}
},
"node_modules/jest-message-util": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.1.2.tgz",
"integrity": "sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz",
"integrity": "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.1.2",
"@jest/types": "^29.2.1",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
"pretty-format": "^29.1.2",
"pretty-format": "^29.2.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
@ -11453,9 +11453,9 @@
}
},
"node_modules/jest-message-util/node_modules/@jest/types": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
"integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz",
"integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -11537,9 +11537,9 @@
}
},
"node_modules/jest-message-util/node_modules/pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"dependencies": {
"@jest/schemas": "^29.0.0",
@ -12971,17 +12971,6 @@
"node": ">=0.10.0"
}
},
"node_modules/jscodeshift/node_modules/rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/jscodeshift/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@ -13152,16 +13141,6 @@
"node": ">=6.0.0"
}
},
"node_modules/json-schema-deref-sync/node_modules/md5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
"integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
"dependencies": {
"charenc": "~0.0.1",
"crypt": "~0.0.1",
"is-buffer": "~1.1.1"
}
},
"node_modules/json5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
@ -13358,13 +13337,13 @@
}
},
"node_modules/md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
"integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
"dependencies": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
"charenc": "~0.0.1",
"crypt": "~0.0.1",
"is-buffer": "~1.1.1"
}
},
"node_modules/md5-file": {
@ -15352,6 +15331,14 @@
"nullthrows": "^1.1.1"
}
},
"node_modules/react-native-date-picker": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/react-native-date-picker/-/react-native-date-picker-4.2.5.tgz",
"integrity": "sha512-YjwiMpZEnVVS+ymLvmJDicVZ3pSR+nJHgtAhctMl6fO8f7iRNcYhY427gemlTBf2Ji+XIAK0Agyl255DhaemFw==",
"dependencies": {
"prop-types": "^15.8.1"
}
},
"node_modules/react-native-dialog": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/react-native-dialog/-/react-native-dialog-9.2.2.tgz",
@ -15459,9 +15446,9 @@
}
},
"node_modules/react-native/node_modules/promise": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz",
"integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
"integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
"dependencies": {
"asap": "~2.0.6"
}
@ -15690,9 +15677,9 @@
}
},
"node_modules/recast/node_modules/tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
},
"node_modules/redux": {
"version": "4.2.0",
@ -15940,9 +15927,9 @@
}
},
"node_modules/rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dependencies": {
"glob": "^7.1.3"
},
@ -16439,17 +16426,6 @@
"plist": "^3.0.5"
}
},
"node_modules/simple-plist/node_modules/bplist-parser": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
"integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"dependencies": {
"big-integer": "1.6.x"
},
"engines": {
"node": ">= 5.10.0"
}
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
@ -20750,18 +20726,18 @@
}
},
"@jest/expect-utils": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.1.2.tgz",
"integrity": "sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz",
"integrity": "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==",
"dev": true,
"requires": {
"jest-get-type": "^29.0.0"
"jest-get-type": "^29.2.0"
},
"dependencies": {
"jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true
}
}
@ -22365,11 +22341,13 @@
"joi": "^17.2.1"
}
},
"@react-native-picker/picker": {
"version": "2.4.8",
"resolved": "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz",
"integrity": "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg==",
"requires": {}
"@react-native-community/datetimepicker": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.2.0.tgz",
"integrity": "sha512-w1ZS+wYO3qSASliRp+B7mPphOhtVm++rhSbj1WsgXdgLgDXSkDxpMnAXXQu9M0XdcgBwVJ6wDExeIwuzU5Jtfg==",
"requires": {
"invariant": "^2.2.4"
}
},
"@react-native/assets": {
"version": "1.0.0",
@ -22625,9 +22603,9 @@
"dev": true
},
"pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -22735,9 +22713,9 @@
}
},
"@xmldom/xmldom": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz",
"integrity": "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ=="
"version": "0.7.8",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz",
"integrity": "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg=="
},
"abab": {
"version": "2.0.6",
@ -22767,9 +22745,9 @@
}
},
"acorn": {
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
"integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
"version": "8.8.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
},
"acorn-globals": {
"version": "6.0.0",
@ -22923,9 +22901,9 @@
},
"dependencies": {
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
@ -23309,9 +23287,9 @@
}
},
"bplist-parser": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz",
"integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==",
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
"integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"requires": {
"big-integer": "1.6.x"
}
@ -24176,9 +24154,9 @@
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA=="
},
"diff-sequences": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz",
"integrity": "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz",
"integrity": "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==",
"dev": true
},
"dir-glob": {
@ -24468,22 +24446,22 @@
}
},
"expect": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.1.2.tgz",
"integrity": "sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz",
"integrity": "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==",
"dev": true,
"requires": {
"@jest/expect-utils": "^29.1.2",
"jest-get-type": "^29.0.0",
"jest-matcher-utils": "^29.1.2",
"jest-message-util": "^29.1.2",
"jest-util": "^29.1.2"
"@jest/expect-utils": "^29.2.2",
"jest-get-type": "^29.2.0",
"jest-matcher-utils": "^29.2.2",
"jest-message-util": "^29.2.1",
"jest-util": "^29.2.1"
},
"dependencies": {
"@jest/types": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
"integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz",
"integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -24544,18 +24522,18 @@
"dev": true
},
"jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true
},
"jest-util": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.1.2.tgz",
"integrity": "sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz",
"integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==",
"dev": true,
"requires": {
"@jest/types": "^29.1.2",
"@jest/types": "^29.2.1",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
@ -25154,9 +25132,9 @@
},
"dependencies": {
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
@ -26091,15 +26069,15 @@
}
},
"jest-diff": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.1.2.tgz",
"integrity": "sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz",
"integrity": "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"diff-sequences": "^29.0.0",
"jest-get-type": "^29.0.0",
"pretty-format": "^29.1.2"
"diff-sequences": "^29.2.0",
"jest-get-type": "^29.2.0",
"pretty-format": "^29.2.1"
},
"dependencies": {
"ansi-styles": {
@ -26143,15 +26121,15 @@
"dev": true
},
"jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true
},
"pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -26649,15 +26627,15 @@
}
},
"jest-matcher-utils": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz",
"integrity": "sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw==",
"version": "29.2.2",
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz",
"integrity": "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"jest-diff": "^29.1.2",
"jest-get-type": "^29.0.0",
"pretty-format": "^29.1.2"
"jest-diff": "^29.2.1",
"jest-get-type": "^29.2.0",
"pretty-format": "^29.2.1"
},
"dependencies": {
"ansi-styles": {
@ -26701,15 +26679,15 @@
"dev": true
},
"jest-get-type": {
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz",
"integrity": "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw==",
"version": "29.2.0",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz",
"integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==",
"dev": true
},
"pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -26743,26 +26721,26 @@
}
},
"jest-message-util": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.1.2.tgz",
"integrity": "sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz",
"integrity": "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^29.1.2",
"@jest/types": "^29.2.1",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
"pretty-format": "^29.1.2",
"pretty-format": "^29.2.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
"dependencies": {
"@jest/types": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz",
"integrity": "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz",
"integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -26823,9 +26801,9 @@
"dev": true
},
"pretty-format": {
"version": "29.1.2",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz",
"integrity": "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg==",
"version": "29.2.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz",
"integrity": "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==",
"dev": true,
"requires": {
"@jest/schemas": "^29.0.0",
@ -27910,14 +27888,6 @@
"to-regex": "^3.0.2"
}
},
"rimraf": {
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@ -28038,18 +28008,6 @@
"memory-cache": "~0.2.0",
"traverse": "~0.6.6",
"valid-url": "~1.0.9"
},
"dependencies": {
"md5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
"integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
"requires": {
"charenc": "~0.0.1",
"crypt": "~0.0.1",
"is-buffer": "~1.1.1"
}
}
}
},
"json5": {
@ -28202,13 +28160,13 @@
}
},
"md5": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
"integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
"integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==",
"requires": {
"charenc": "0.0.2",
"crypt": "0.0.2",
"is-buffer": "~1.1.6"
"charenc": "~0.0.1",
"crypt": "~0.0.1",
"is-buffer": "~1.1.1"
}
},
"md5-file": {
@ -29715,9 +29673,9 @@
},
"dependencies": {
"promise": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz",
"integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz",
"integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==",
"requires": {
"asap": "~2.0.6"
}
@ -29735,6 +29693,14 @@
"nullthrows": "^1.1.1"
}
},
"react-native-date-picker": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/react-native-date-picker/-/react-native-date-picker-4.2.5.tgz",
"integrity": "sha512-YjwiMpZEnVVS+ymLvmJDicVZ3pSR+nJHgtAhctMl6fO8f7iRNcYhY427gemlTBf2Ji+XIAK0Agyl255DhaemFw==",
"requires": {
"prop-types": "^15.8.1"
}
},
"react-native-dialog": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/react-native-dialog/-/react-native-dialog-9.2.2.tgz",
@ -29974,9 +29940,9 @@
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"tslib": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz",
"integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
}
}
},
@ -30175,9 +30141,9 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": {
"glob": "^7.1.3"
}
@ -30572,16 +30538,6 @@
"bplist-creator": "0.1.0",
"bplist-parser": "0.3.1",
"plist": "^3.0.5"
},
"dependencies": {
"bplist-parser": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz",
"integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==",
"requires": {
"big-integer": "1.6.x"
}
}
}
},
"simple-swizzle": {

@ -9,7 +9,7 @@
"web": "expo start --web"
},
"dependencies": {
"@react-native-picker/picker": "^2.4.8",
"@react-native-community/datetimepicker": "6.2.0",
"@react-navigation/bottom-tabs": "^6.4.0",
"@react-navigation/native": "^6.0.13",
"@react-navigation/stack": "^6.3.2",
@ -21,6 +21,7 @@
"react": "18.0.0",
"react-dom": "18.0.0",
"react-native": "^0.69.6",
"react-native-date-picker": "^4.2.5",
"react-native-dialog": "^9.2.2",
"react-native-dialog-input": "^1.0.8",
"react-native-gesture-handler": "~2.5.0",

@ -0,0 +1,21 @@
import { FC} from "react"
import { Pressable, Text} from "react-native"
import React from "react"
import styles from "./style/PickerGreySmall"
import RNPickerSelect from "react-native-picker-select";
export const PickerGreySmall:
FC<{ valueChange: any, title: string, donePress?: any, values?: any;}>
=
({valueChange, donePress, title, values}) =>
{
return(
<RNPickerSelect
placeholder={{label:title, value: null}}
onValueChange={valueChange}
onDonePress={donePress}
items={values}
style={styles}
/>
)
}

@ -7,8 +7,9 @@ import { Skin } from "../core/skin"
Importing the correct stylesheet
*/
import styles from "./style/Skin.style"
import { useDispatch } from "react-redux"
import { updateSkin } from "../redux/features/currentUserSlice"
import { useDispatch, useSelector } from "react-redux"
import { loginUser } from "../redux/features/currentUserSlice"
import { RootState } from "../redux/store"
export const SkinComponent :
/* Parameters :
@ -19,6 +20,8 @@ FC<{skin: Skin, state: String}> =
({skin, state}) =>
{
const dispatch=useDispatch();
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
/* The display of this component depends of the screen from where it has been called:
* From the TopBar (icon) : Small image in a circle
@ -46,7 +49,7 @@ FC<{skin: Skin, state: String}> =
)
case 'liste':
return(
<Pressable onPress={() => dispatch(updateSkin(skin))} style={styles.imageWrapper}>
<Pressable onPress={() => {currentUser.setCurrentSkin(skin); dispatch(loginUser(currentUser))}} style={styles.imageWrapper}>
<Text style={styles.nomSkin}>{skin.getSkinName()}</Text>
<Image
style={styles.imageSkin}

@ -30,7 +30,7 @@ FC<{nav: any, state?: string}> =
({nav, state}) =>
{
const currentUser = useSelector((state: RootState) => state.currentUser.value)[0];
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
/* The display of this component depends of the screen from where it has been called:
* From the Settings (icon) : Name of the page + cross button

@ -0,0 +1,40 @@
import { StyleSheet } from "react-native";
export default StyleSheet.create(
{inputIOS: {
alignItems: 'center',
justifyContent: 'center',
padding: 3,
marginTop: 5,
borderRadius: 10,
backgroundColor: '#2D2C33',
paddingHorizontal: 10,
fontSize: 16,
fontWeight: 'bold',
letterSpacing: 0.25,
textAlign: 'center',
color: 'white',
},
placeholder: {
color: 'white',
},
},
{inputAndroid: {
alignItems: 'center',
justifyContent: 'center',
padding: 3,
marginTop: 5,
borderRadius: 10,
backgroundColor: '#2D2C33',
paddingHorizontal: 10,
fontSize: 16,
fontWeight: 'bold',
letterSpacing: 0.25,
textAlign: 'center',
color: 'white',
},
placeholder: {
color: 'white',
},
}
)

@ -1,7 +1,7 @@
const tabSex = [
{ label: "Homme", value: "Homme" },
{ label: "Femmme", value: "Femmme" },
{ label: "Femme", value: "Femme" },
{ label: "Non-binaire", value: "Non-binaire" },
{ label: "Autre", value: "Autre" },
]

@ -0,0 +1,26 @@
import { loginUser } from '../../redux/features/currentUserSlice';
import { updateIncorrectCredentials } from '../../redux/features/credentialErrorsSlice';
import tabUS from "../../constUser";
import { useSelector } from 'react-redux';
import { RootState } from '../../redux/store';
export const checkCredentials = (login: string, password: string, dispatch: any, nav: any) => {
if((tabUS.map((User) => User.getUsername()).indexOf(login)) !== -1){
let id = (tabUS.map((User) => User.getUsername()).indexOf(login))
if ((tabUS.map((User) => User.getUsername()).indexOf(login) === id) && ( tabUS[id].getPassword() === password) ){
dispatch(loginUser(tabUS[id]));
nav.navigate('HomeTab')
}
else{
dispatch(updateIncorrectCredentials(true))
}
}
else{
dispatch(updateIncorrectCredentials(true));
}
};

@ -0,0 +1,71 @@
import { loginUser } from '../../redux/features/currentUserSlice';
import tabUS from "../../constUser";
import { User } from '../User/user';
import { updateAlreadyUsedPseudo,updateImpossibleBirthDate,updateUndefinedBirthDate,updateUndefinedNationality,updateTooLongPseudo,updateUndefinedPseudo,updateUndefinedSex, updateTooShortPassword, updateInvalidPassword, updateInvalidPseudo, updateUndefinedPassword } from '../../redux/features/credentialErrorsSlice';
function max(array: User[]){
let max: string = "";
for (let index = 0; index < array.length; index++) {
const element = array[index].getId();
if (element > max) max = element;
}
return max;
}
export const checkNewUserValidity = (login: string, password: string, dateOfBirth: Date, nationality: string, sexe: string, dispatch: any, nav: any) => {
let actualDate : number = Date.now();
let givenDate : number = dateOfBirth.getTime();
let passwordRegex : RegExp = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-])(?!.*?[.\n\\{}[\],]).{8,}$/;
let loginRegex : RegExp = /^[A-Za-z0-9_-]{1,22}$/;
switch(true){
case (login === ''):
dispatch(updateUndefinedPseudo(true));
break;
case (password === ''):
dispatch(updateUndefinedPassword(true));
break;
case (givenDate == null):
dispatch(updateUndefinedBirthDate(true));
break;
case (nationality == ''):
dispatch(updateUndefinedNationality(true))
break;
case (sexe == ''):
dispatch(updateUndefinedSex(true));
break;
case (login.length > 22):
dispatch(updateTooLongPseudo(true));
break;
case (! loginRegex.test(login)):
dispatch(updateInvalidPseudo(true));
break;
//ALREADY USED PSEUDO
case (password.length < 8):
dispatch(updateTooShortPassword(true));
break;
case (! passwordRegex.test(password)):
dispatch(updateInvalidPassword(true));
break;
case ((actualDate-givenDate) < 409968000000):
dispatch(updateImpossibleBirthDate(true));
break;
default:
const newUser : User = new User("0",login,password,nationality,sexe,dateOfBirth);
dispatch(loginUser(newUser));
nav.navigate('HomeTab');
}
};

@ -11,7 +11,7 @@ import Profile from '../screens/Profile'
import SkinList from '../screens/SkinList'
import GameChoice from '../screens/GameChoice'
import SignIn from '../screens/SignIn'
//import SignUp from '../screens/SignUp'
import SignUp from '../screens/SignUp'
@ -87,6 +87,7 @@ function MainTabNavigator() {
<Tab.Screen name='ChatTab' component={ChatStackScreen} />
<Tab.Screen name='ProfileTab' component={ProfileStackScreen} />
<Tab.Screen name='SignIn' component={SignIn} />
<Tab.Screen name='SignUp' component={SignUp} />
</Tab.Navigator>
</NavigationContainer>
)

@ -0,0 +1,174 @@
import { createSlice, PayloadAction } from "@reduxjs/toolkit"
var incorrectCredentialsBool : boolean = false;
var tooLongPseudodBool : boolean = false;
var tooShortPasswordBool : boolean = false;
var invalidPseudoBool : boolean = false;
var invalidPasswordBool : boolean = false;
var impossibleBirthDateBool : boolean = false;
var undefinedPseudoBool : boolean = false;
var undefinedPasswordBool : boolean = false;
var undefinedBirthDateBool : boolean = false;
var undefinedNationalityBool : boolean = false;
var undefinedSexBool : boolean = false;
var alreadyUsedPseudoBool : boolean = false;
export const credentialErrorsSlice = createSlice({
name: "credentialErrors",
initialState:{
newUserErrorList : {
tooLongPseudo: tooLongPseudodBool,
tooShortPassword : tooShortPasswordBool,
invalidPseudo: invalidPseudoBool,
invalidPassword: invalidPasswordBool,
impossibleBirthDate: impossibleBirthDateBool,
undefinedPseudo: undefinedPseudoBool,
undefinedPassword: undefinedPasswordBool,
undefinedBirthDate: undefinedBirthDateBool,
undefinedNationality: undefinedNationalityBool,
undefinedSex: undefinedSexBool,
alreadyUsedPseudo: alreadyUsedPseudoBool,
},
loginErrorList : {
incorrectCredentials: incorrectCredentialsBool,
}
},
reducers: {
updateIncorrectCredentials: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
incorrectCredentials: action.payload
}
}
},
updateTooLongPseudo: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
tooShortPseudo: action.payload
}
}
},
updateTooLongPassword: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
tooLongPassword: action.payload
}
}
},
updateTooShortPassword: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
tooShortPassword: action.payload
}
}
},
updateInvalidPseudo: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
invalidPseudo: action.payload
}
}
},
updateInvalidPassword: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
invalidPassword: action.payload
}
}
},
updateImpossibleBirthDate: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
impossibleBirthDate: action.payload
}
}
},
updateUndefinedPseudo: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
undefinedPseudo: action.payload
}
}
},
updateUndefinedPassword: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
undefinedPassword: action.payload
}
}
},
updateUndefinedBirthDate: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
undefinedBirthDate: action.payload
}
}
},
updateUndefinedNationality: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
undefinedNationality: action.payload
}
}
},
updateUndefinedSex: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
undefinedSex: action.payload
}
}
},
updateAlreadyUsedPseudo: (state, action: PayloadAction<boolean>) => {
return {
...state,
newUserErrorList:{
...state.newUserErrorList,
alreadyUsedPseudo: action.payload
}
}
},
},
});
export const { updateIncorrectCredentials } = credentialErrorsSlice.actions
export const { updateTooShortPassword } = credentialErrorsSlice.actions
export const { updateTooLongPseudo } = credentialErrorsSlice.actions
export const { updateTooLongPassword } = credentialErrorsSlice.actions
export const { updateInvalidPseudo } = credentialErrorsSlice.actions
export const { updateInvalidPassword } = credentialErrorsSlice.actions
export const { updateImpossibleBirthDate } = credentialErrorsSlice.actions
export const { updateUndefinedPseudo } = credentialErrorsSlice.actions
export const { updateUndefinedPassword } = credentialErrorsSlice.actions
export const { updateUndefinedBirthDate } = credentialErrorsSlice.actions
export const { updateUndefinedNationality } = credentialErrorsSlice.actions
export const { updateUndefinedSex } = credentialErrorsSlice.actions
export const { updateAlreadyUsedPseudo } = credentialErrorsSlice.actions
export default credentialErrorsSlice.reducer;

@ -2,50 +2,65 @@ import { createSlice, PayloadAction } from "@reduxjs/toolkit"
import { Skin } from "../../core/Skin";
import { User } from "../../core/User/user";
interface currentUserState {
value: User[]
}
const dateNull = new Date();
const initialState: currentUserState = {
value: [],
}
const userNull:User= new User("","","","","",dateNull);
var currentUser:User = userNull;
export const currentUserSlice = createSlice({
name: "currentUser",
initialState,
name: "currentUserManager",
initialState : {
currentUser
},
reducers: {
loginUser: (state, action: PayloadAction<User>) => {
state.value.push(action.payload);
const newUser : User = new User(action.payload.getId(), action.payload.getUsername(),action.payload.getPassword(),action.payload.getNationality(),action.payload.getSexe(),action.payload.getDateOfBirth(), action.payload.getCurrentCoins(), action.payload.getTotalCoins(),action.payload.getGamePlayed(),action.payload.getCurrentSkin(),action.payload.getTabSkin(), action.payload.getTabConv())
state.currentUser = newUser;
},
updateSkin: (state, action: PayloadAction<Skin>) =>{
const newUser = state.value[0]
const newUser : User = new User(currentUser.getId(), currentUser.getUsername(),currentUser.getPassword(),currentUser.getNationality(),currentUser.getSexe(),currentUser.getDateOfBirth(), currentUser.getCurrentCoins(), currentUser.getTotalCoins(),currentUser.getGamePlayed(),currentUser.getCurrentSkin(),currentUser.getTabSkin(), currentUser.getTabConv())
newUser.setCurrentSkin(action.payload);
state.value.pop();
state.value.push(newUser);
state.currentUser = newUser;
},
updatePseudo: (state, action: PayloadAction<string>) =>{
const newUser = state.value[0]
const newUser: User = new User(currentUser.getId(), currentUser.getUsername(), currentUser.getPassword(), currentUser.getNationality(), currentUser.getSexe(), currentUser.getDateOfBirth());
console.log(currentUser);
newUser.setUsername(action.payload);
state.value.pop();
state.value.push(newUser);
return {
...state,
currentUser: newUser,
}
},
updatePassword: (state, action: PayloadAction<string>) =>{
const newUser = state.value[0]
newUser.setPassword(action.payload);
state.value.pop();
state.value.push(newUser);
const newUser = state.currentUser;
currentUser.setPassword(action.payload)
return {
...state,
currentUser: newUser,
}
},
updateNationality: (state, action: PayloadAction<string>) =>{
const newUser = state.value[0]
newUser.setNationality(action.payload);
state.value.pop();
state.value.push(newUser);
const newUser = state.currentUser;
currentUser.setNationality(action.payload)
return {
...state,
currentUser: newUser,
}
},
updateSex: (state, action: PayloadAction<string>) =>{
const newUser = state.value[0]
newUser.setSexe(action.payload);
state.value.pop();
state.value.push(newUser);
const newUser = state.currentUser;
currentUser.setSexe(action.payload)
return {
...state,
currentUser: newUser,
}
}
},
});

@ -1,5 +1,6 @@
import { configureStore } from "@reduxjs/toolkit";
import currentUserReducer from "./features/currentUserSlice";
import credentialErrorsSlice from "./features/credentialErrorsSlice";
import { getDefaultMiddleware } from '@reduxjs/toolkit';
const customizedMiddleware = getDefaultMiddleware({
@ -8,7 +9,8 @@ const customizedMiddleware = getDefaultMiddleware({
const store = configureStore({
reducer: {
currentUser: currentUserReducer,
currentUserManager: currentUserReducer,
credentialErrors: credentialErrorsSlice,
},
middleware: (getDefaultMiddleware) => customizedMiddleware,
})

@ -12,7 +12,7 @@ import { RootState } from '../redux/store';
function Chat(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value[0]);
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
return (
<View style={stylesScreen.container}>

@ -15,7 +15,6 @@ let tabConv:Conversation[]=[];
const msc = require('../../assets/Icons/FondGris.png');
const UserActu=new User("14", "leBg", "MdpDeOuf", "ouioui", "grand", new Date(2022,12,12), 12222, 123324, 12, tabSkinApp[0], tabSkinApp, tabConv);
const jeuTest= new GameSolo("SNAKE", require('../../assets/Icons/UnSelected/Gamepad.png'),"ouin", 1, 1,new Map<number,number>);
function GameChoice(props: { navigation: any; }) {
const { navigation } = props

@ -17,8 +17,6 @@ let tabConv:Conversation[]=[];
function Home(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value[0]);
return (
<View style={stylesScreen.container}>
<TopBar

@ -18,8 +18,7 @@ const coin = require('../../assets/Icons/Coin.png')
function Profile(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value)[0];
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
return (
<View style={stylesScreen.container}>
<TopBar

@ -13,16 +13,15 @@ import Dialog from "react-native-dialog"
import RNPickerSelect from "react-native-picker-select";
import tabNat from '../constNat';
import tabSex from '../constSex';
import { PickerGreySmall } from '../components/PickerGreySmall';
function Settings(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value)[0];
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
const [dialogPseudoVisible, setDialogPseudoVisible] = useState(false);
const [dialogPasswordVisible, setDialogPasswordVisible] = useState(false);
const [dialogNationalityVisible, setDialogNationalityVisible] = useState(false);
const [dialogSexVisible, setDialogSexVisible] = useState(false);
const [selectedSex, setSelectedSex] = useState("");
const [selectedNationality, setSelectedNationality] = useState("");
@ -50,11 +49,11 @@ function Settings(props: { navigation: any; }) {
</View>
<View>
<Text style={styles.text}>Nationalité: {currentUser.getNationality()}</Text>
<ButtonGreySmall onPress={() => setDialogNationalityVisible(true)} title='Changer la nationnalité'/>
<PickerGreySmall title='Changer la nationalité' valueChange={(value:string) => setSelectedNationality(value)} donePress={() => dispatch(updateNationality(selectedNationality))} values={tabNat} />
</View>
<View>
<Text style={styles.text}>Sexe: {currentUser.getSexe()}</Text>
<ButtonGreySmall onPress={() => setDialogSexVisible(true)} title='Changer le sexe'/>
<PickerGreySmall title='Changer le sexe' valueChange={(value:string) => setSelectedSex(value)} donePress={() => dispatch(updateSex(selectedSex))} values={tabSex} />
</View>
</View>
<Text style={styles.textID}>ID: {currentUser.getId()}</Text>
@ -78,32 +77,6 @@ function Settings(props: { navigation: any; }) {
closeDialog={ () => {setDialogPasswordVisible(false)}}>
</DialogInput>
<Dialog.Container visible={dialogNationalityVisible}>
<Dialog.Title>Changer de nationalité</Dialog.Title>
<View style={styles.RNPView}>
<RNPickerSelect
placeholder={{label:"Cliquez pour changer", value: null}}
onValueChange={(value:string) => setSelectedNationality(value)}
items={tabNat}
/>
</View>
<Dialog.Button label="Cancel" onPress={() => setDialogNationalityVisible(false)} />
<Dialog.Button label="Valider" onPress={() => {dispatch(updateNationality(selectedNationality)); setDialogNationalityVisible(false)}} />
</Dialog.Container>
<Dialog.Container visible={dialogSexVisible}>
<Dialog.Title>Changer de sexe</Dialog.Title>
<View style={styles.RNPView}>
<RNPickerSelect
placeholder={{label:"Cliquez pour changer", value: null}}
onValueChange={(value:string) => setSelectedSex(value)}
items={tabSex}
/>
</View>
<Dialog.Button label="Cancel" onPress={() => setDialogSexVisible(false)} />
<Dialog.Button label="Valider" onPress={() => {dispatch(updateSex(selectedSex)); setDialogSexVisible(false)}} />
</Dialog.Container>
</View>
);
}

@ -1,13 +1,16 @@
import { StatusBar } from 'expo-status-bar'
import { View, Pressable, Text} from 'react-native'
import { View, Pressable, Text, Alert} from 'react-native'
import React, { useState } from 'react';
import stylesScreen from './style/screens.style'
import { TextInput } from 'react-native-gesture-handler';
import tabUS from "../constUser";
import styles from "./style/SignIn.style"
import { useDispatch, } from 'react-redux';
import styles from "./style/SignIn.style";
import { useDispatch, useSelector } from 'react-redux';
import tabUS from '../constUser';
import { loginUser } from '../redux/features/currentUserSlice';
import { checkCredentials } from '../core/Auth/login';
import { RootState } from '../redux/store';
import { updateIncorrectCredentials } from '../redux/features/credentialErrorsSlice';
import Dialog from "react-native-dialog";
@ -15,34 +18,39 @@ import { loginUser } from '../redux/features/currentUserSlice';
function SignIn(props: { navigation: any; }) {
const { navigation } = props
const errorList = useSelector((state: RootState) => state.credentialErrors.loginErrorList);
const [pseudo, setPseudo] = useState('');
const [password, setPassword] = useState('');
const dispatch=useDispatch();
function userVerif(login: string, password: string, nav: any){
if((tabUS.map((User) => User.getUsername()).indexOf(login)) !== -1){
let id = (tabUS.map((User) => User.getUsername()).indexOf(login))
if ((tabUS.map((User) => User.getUsername()).indexOf(login) === id) && ( tabUS[id].getPassword() === password) ){
dispatch(loginUser(tabUS[id]));
nav.navigate('HomeTab');
}
}
if (errorList.incorrectCredentials){
Alert.alert("Pseudo ou Mot de passe incorrect");
dispatch(updateIncorrectCredentials(true));
}
return (
<View style={stylesScreen.container}>
<View style={stylesScreen.bodyCenter}>
<TextInput style={styles.textInput} placeholder='Login' onChangeText={(val) => setPseudo(val)} autoCapitalize='none' />
<TextInput style={styles.textInput} placeholder='Password' onChangeText={(val) => setPassword(val)} autoCapitalize='none' />
<Pressable style={styles.button} onPress={() => userVerif(pseudo, password, navigation)}>
<TextInput style={styles.textInput} placeholder='Password' onChangeText={(val) => setPassword(val)} autoCapitalize='none' secureTextEntry={true}/>
<Pressable style={styles.button} onPress={() => checkCredentials(pseudo, password, dispatch, navigation)}>
<Text style={styles.text}>Se connecter</Text>
</Pressable>
<Pressable onPress={() => navigation.navigate('SignUp')}>
<Text style={styles.signup}>Pas de compte? Inscrivez vous !</Text>
<Text style={styles.textLink}>Pas de compte? Inscrivez vous !</Text>
</Pressable>
</View>
<Dialog.Container visible={false}>
<Dialog.Title>Ce pseudo n'exsite pas</Dialog.Title>
<Dialog.Button label="Fermer" onPress={() => dispatch(updateIncorrectCredentials(false))} />
</Dialog.Container>
<Dialog.Container visible={false}>
<Dialog.Title>Mot de passe incorrect</Dialog.Title>
<Dialog.Button label="Fermer" onPress={() => dispatch(updateIncorrectCredentials(false))} />
</Dialog.Container>
</View>
);
}

@ -1,29 +1,142 @@
// import { StatusBar } from 'expo-status-bar'
// import { StyleSheet, View, ImageSourcePropType, Pressable, Text} from 'react-native'
// import React from 'react';
// import stylesScreen from './style/screens.style'
// import { TextInput } from 'react-native-gesture-handler';
// import { ButtonGameTypeChoice } from '../components/ButtonGameTypeChoice';
// import styles from "./style/SignIn.style"
// function SignUp(props: { navigation: any; }) {
// const { navigation } = props
// return (
// <View style={stylesScreen.container}>
// <View style={stylesScreen.bodyCenter}>
// <CustomTextInput placeholder={""} text="Pseudo"/>
// <CustomTextInput placeholder={""} text="Mot de passe"/>
// <CustomTextInput placeholder={""} text="Mot de passe"/>
// <CustomTextInput placeholder={""} text="Nationalité"/>
// <CustomTextInput placeholder={""} text="Date de naisance"/>
// <CustomTextInput placeholder={""} text="Sexe"/>
// <Pressable style={styles.button} onPress={navigation.navigate('Home')}>
// <Text style={styles.text}>S'inscrire</Text>
// </Pressable>
// </View>
// </View>
// );
// }
// export default SignUp
import { StatusBar } from 'expo-status-bar'
import { StyleSheet, View, ImageSourcePropType, Pressable, Text, Alert} from 'react-native'
import React, { useState } from 'react';
import stylesScreen from './style/screens.style'
import { TextInput } from 'react-native-gesture-handler';
import { ButtonGameTypeChoice } from '../components/ButtonGameTypeChoice';
import styleScreen from "./style/screens.style";
import styles from "./style/SignUp.style";
import { useDispatch, useSelector } from 'react-redux';
import { checkNewUserValidity } from '../core/Auth/newUser';
import DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker';
import RNPickerSelect from "react-native-picker-select";
import tabSex from '../constSex';
import tabNat from '../constNat';
import { PickerGreySmall } from '../components/PickerGreySmall';
import { loginUser } from '../redux/features/currentUserSlice';
import { RootState } from '../redux/store';
import { updateImpossibleBirthDate, updateInvalidPassword, updateInvalidPseudo, updateTooLongPseudo, updateTooShortPassword, updateUndefinedBirthDate, updateUndefinedNationality, updateUndefinedPassword, updateUndefinedPseudo, updateUndefinedSex } from '../redux/features/credentialErrorsSlice';
import { getSystemErrorMap } from 'util';
import RNDateTimePicker from '@react-native-community/datetimepicker';
function SignUp(props: { navigation: any; }) {
const { navigation } = props
const [pseudo, setPseudo] = useState('');
const [password, setPassword] = useState('');
const [date, setDate] = useState(new Date())
function onDateSelected(event : DateTimePickerEvent, value : Date | undefined) {
console.log(value);
if (value != undefined) {
setDate(value);
}
}
const [selectedSex, setSelectedSex] = useState('');
const [selectedNationality, setSelectedNationality] = useState('')
const errorList = useSelector((state: RootState) => state.credentialErrors.newUserErrorList);
const dispatch=useDispatch();
switch(true){
case (errorList.undefinedPseudo):
Alert.alert("Veuillez définir un pseudo");
dispatch(updateUndefinedPseudo(false));
break;
case (errorList.undefinedPassword):
Alert.alert("Veuillez définir un mot de passe");
dispatch(updateUndefinedPassword(false));
break;
case (errorList.undefinedBirthDate):
Alert.alert("Veuillez définir une date de naissance");
dispatch(updateUndefinedBirthDate(false));
break;
case (errorList.undefinedNationality):
Alert.alert("Veuillez définir une nationalité");
dispatch(updateUndefinedNationality(false))
break;
case (errorList.undefinedSex):
Alert.alert("Veuillez définir un sexe");
dispatch(updateUndefinedSex(false));
break;
case (errorList.tooLongPseudo):
Alert.alert("Votre pseudo ne doit pas dépasser 22 caractères");
dispatch(updateTooLongPseudo(false));
break;
case (errorList.invalidPseudo):
Alert.alert("Votre pseudo doit contenir uniquement des lettres des chiffres et des - ou _");
dispatch(updateInvalidPseudo(false));
break;
//ALREADY USED PSEUDO
case (errorList.tooShortPassword):
Alert.alert("Votre mot de passe doit faire au moins 8 caractères");
dispatch(updateTooShortPassword(false));
break;
case (errorList.invalidPassword):
Alert.alert("Votre pseudo doit contenir au moins une majuscule, une majuscule, un chiffre et un caractère spécial (#?!@$%^&*-)");
dispatch(updateInvalidPassword(false));
break;
case (errorList.impossibleBirthDate):
Alert.alert("Vous devez avoir au moins 13 ans");
dispatch(updateImpossibleBirthDate(false));
break;
}
return (
<View style={stylesScreen.container}>
<View style={stylesScreen.bodyCenter}>
<View style={{width: '60%', alignItems: 'center'}}>
<Text style={styles.text}>Login</Text>
<TextInput style={styles.textInput} placeholder='Login' onChangeText={(val) => setPseudo(val)} autoCapitalize='none' />
</View>
<View style={{width: '60%', alignItems: 'center'}}>
<Text style={styles.text}>Password</Text>
<TextInput style={styles.textInput} placeholder='Password' onChangeText={(val) => setPassword(val)} autoCapitalize='none' />
</View>
<View style={{width: '70%', alignItems: 'center'}}>
<Text style={styles.text}>Date de naissance</Text>
<View style={{width: 150, margin: 10}}>
<RNDateTimePicker onChange={(event, value) => onDateSelected(event, value)} mode='date' value={date} themeVariant='dark'/>
</View>
</View>
<View style={{width: '60%', alignItems: 'center'}}>
<Text style={styles.text}>Nationalité</Text>
<PickerGreySmall title='Choisir la Nationalité' valueChange={(value:string) =>
setSelectedNationality(value)} values={tabNat} />
</View>
<View style={{width: '60%', alignItems: 'center'}}>
<Text style={styles.text}>Sexe</Text>
<PickerGreySmall title='Choisir le sexe' valueChange={(value:string) => setSelectedSex(value)} values={tabSex} />
</View>
<Pressable style={styles.button} onPress={() => checkNewUserValidity(pseudo,password,date,selectedNationality,selectedSex, dispatch, navigation)}>
<Text style={styles.text}>S'inscrire</Text>
</Pressable>
<Pressable onPress={() => navigation.navigate('SignIn')}>
<Text style={styles.textLink}>J'ai déjà un compte</Text>
</Pressable>
</View>
</View>
);
}
export default SignUp

@ -16,8 +16,6 @@ import { RootState } from '../redux/store';
function SkinList(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value[0]);
return (
<View style={stylesScreen.container}>
<TopBar

@ -13,7 +13,7 @@ import { RootState } from '../redux/store';
function Store(props: { navigation: any; }) {
const { navigation } = props
const currentUser = useSelector((state: RootState) => state.currentUser.value[0]);
const currentUser = useSelector((state: RootState) => state.currentUserManager.currentUser);
return (
<View style={stylesScreen.container}>

@ -3,36 +3,43 @@
"@ampproject/remapping@^2.1.0":
version "2.2.0"
resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz"
integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
"integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w=="
"resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz"
"version" "2.2.0"
dependencies:
"@jridgewell/gen-mapping" "^0.1.0"
"@jridgewell/trace-mapping" "^0.3.9"
"@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4":
version "7.10.4"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz"
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
"integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q=="
"resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz"
"version" "7.18.6"
dependencies:
"@babel/highlight" "^7.18.6"
"@babel/code-frame@~7.10.4":
"integrity" "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="
"resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz"
"version" "7.10.4"
dependencies:
"@babel/highlight" "^7.10.4"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
version "7.18.6"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz"
integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
"@babel/code-frame@7.10.4":
"integrity" "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg=="
"resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz"
"version" "7.10.4"
dependencies:
"@babel/highlight" "^7.18.6"
"@babel/highlight" "^7.10.4"
"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4":
"integrity" "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw=="
"resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz"
"version" "7.19.4"
"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.7.5":
version "7.19.3"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz"
integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==
"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.12.9", "@babel/core@^7.13.0", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.4.0-0", "@babel/core@^7.7.5":
"integrity" "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ=="
"resolved" "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz"
"version" "7.19.3"
dependencies:
"@ampproject/remapping" "^2.1.0"
"@babel/code-frame" "^7.18.6"
@ -44,11 +51,11 @@
"@babel/template" "^7.18.10"
"@babel/traverse" "^7.19.3"
"@babel/types" "^7.19.3"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.1"
semver "^6.3.0"
"convert-source-map" "^1.7.0"
"debug" "^4.1.0"
"gensync" "^1.0.0-beta.2"
"json5" "^2.2.1"
"semver" "^6.3.0"
"@babel/generator@^7.14.0", "@babel/generator@^7.19.3", "@babel/generator@^7.19.4":
"integrity" "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg=="
@ -1483,12 +1490,12 @@
"@types/node" "*"
"jest-mock" "^26.6.2"
"@jest/expect-utils@^29.1.2":
"integrity" "sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg=="
"resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.1.2.tgz"
"version" "29.1.2"
"@jest/expect-utils@^29.2.2":
"integrity" "sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg=="
"resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.2.2.tgz"
"version" "29.2.2"
dependencies:
"jest-get-type" "^29.0.0"
"jest-get-type" "^29.2.0"
"@jest/fake-timers@^26.6.2":
"integrity" "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA=="
@ -1623,10 +1630,10 @@
"@types/yargs" "^16.0.0"
"chalk" "^4.0.0"
"@jest/types@^29.1.2":
"integrity" "sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg=="
"resolved" "https://registry.npmjs.org/@jest/types/-/types-29.1.2.tgz"
"version" "29.1.2"
"@jest/types@^29.2.1":
"integrity" "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw=="
"resolved" "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"@jest/schemas" "^29.0.0"
"@types/istanbul-lib-coverage" "^2.0.0"
@ -1882,16 +1889,18 @@
"prompts" "^2.4.0"
"semver" "^6.3.0"
"@react-native-community/datetimepicker@6.2.0":
"integrity" "sha512-w1ZS+wYO3qSASliRp+B7mPphOhtVm++rhSbj1WsgXdgLgDXSkDxpMnAXXQu9M0XdcgBwVJ6wDExeIwuzU5Jtfg=="
"resolved" "https://registry.npmjs.org/@react-native-community/datetimepicker/-/datetimepicker-6.2.0.tgz"
"version" "6.2.0"
dependencies:
"invariant" "^2.2.4"
"@react-native-picker/picker@^1.8.3":
"integrity" "sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ=="
"resolved" "https://registry.npmjs.org/@react-native-picker/picker/-/picker-1.16.8.tgz"
"version" "1.16.8"
"@react-native-picker/picker@^2.4.8":
"integrity" "sha512-5NQ5XPo1B03YNqKFrV6h9L3CQaHlB80wd4ETHUEABRP2iLh7FHLVObX2GfziD+K/VJb8G4KZcZ23NFBFP1f7bg=="
"resolved" "https://registry.npmjs.org/@react-native-picker/picker/-/picker-2.4.8.tgz"
"version" "2.4.8"
"@react-native/assets@1.0.0":
"integrity" "sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ=="
"resolved" "https://registry.npmjs.org/@react-native/assets/-/assets-1.0.0.tgz"
@ -2197,9 +2206,9 @@
"wonka" "^4.0.14"
"@xmldom/xmldom@~0.7.0":
"integrity" "sha512-HHXP9hskkFQHy8QxxUXkS7946FFIhYVfGqsk0WLwllmexN9x/+R4UBLvurHEuyXRfVEObVR8APuQehykLviwSQ=="
"resolved" "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.6.tgz"
"version" "0.7.6"
"integrity" "sha512-PrJx38EfpitFhwmILRl37jAdBlsww6AZ6rRVK4QS7T7RHLhX7mSs647sTmgr9GIxe3qjXdesmomEgbgaokrVFg=="
"resolved" "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.8.tgz"
"version" "0.7.8"
"abab@^2.0.3", "abab@^2.0.5":
"integrity" "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA=="
@ -2245,9 +2254,9 @@
"version" "7.4.1"
"acorn@^8.2.4":
"integrity" "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
"resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz"
"version" "8.8.0"
"integrity" "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
"resolved" "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz"
"version" "8.8.1"
"agent-base@6":
"integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="
@ -2674,14 +2683,7 @@
dependencies:
"stream-buffers" "2.2.x"
"bplist-parser@^0.3.1":
"integrity" "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ=="
"resolved" "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz"
"version" "0.3.2"
dependencies:
"big-integer" "1.6.x"
"bplist-parser@0.3.1":
"bplist-parser@^0.3.1", "bplist-parser@0.3.1":
"integrity" "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA=="
"resolved" "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz"
"version" "0.3.1"
@ -2915,7 +2917,7 @@
"resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz"
"version" "1.0.2"
"charenc@~0.0.1", "charenc@0.0.2":
"charenc@~0.0.1":
"integrity" "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="
"resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
"version" "0.0.2"
@ -3224,7 +3226,7 @@
"shebang-command" "^2.0.0"
"which" "^2.0.1"
"crypt@~0.0.1", "crypt@0.0.2":
"crypt@~0.0.1":
"integrity" "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow=="
"resolved" "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz"
"version" "0.0.2"
@ -3457,10 +3459,10 @@
"resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz"
"version" "26.6.2"
"diff-sequences@^29.0.0":
"integrity" "sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA=="
"resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.0.0.tgz"
"version" "29.0.0"
"diff-sequences@^29.2.0":
"integrity" "sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw=="
"resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.2.0.tgz"
"version" "29.2.0"
"dir-glob@^3.0.1":
"integrity" "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="
@ -3676,15 +3678,15 @@
"jest-regex-util" "^26.0.0"
"expect@^29.0.0":
"integrity" "sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw=="
"resolved" "https://registry.npmjs.org/expect/-/expect-29.1.2.tgz"
"version" "29.1.2"
"integrity" "sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw=="
"resolved" "https://registry.npmjs.org/expect/-/expect-29.2.2.tgz"
"version" "29.2.2"
dependencies:
"@jest/expect-utils" "^29.1.2"
"jest-get-type" "^29.0.0"
"jest-matcher-utils" "^29.1.2"
"jest-message-util" "^29.1.2"
"jest-util" "^29.1.2"
"@jest/expect-utils" "^29.2.2"
"jest-get-type" "^29.2.0"
"jest-matcher-utils" "^29.2.2"
"jest-message-util" "^29.2.1"
"jest-util" "^29.2.1"
"expo-application@~4.2.2":
"integrity" "sha512-bFEaFRUdV6aK2iBd+HzkHNPYsyj88EAhaQW5leznmO0qQMJxpAQ3eoUXMey1hfDBh1qgkkHgSyCZ9BIgMAGJ1g=="
@ -4517,7 +4519,7 @@
"resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"
"version" "0.3.2"
"is-buffer@^1.1.5", "is-buffer@~1.1.1", "is-buffer@~1.1.6":
"is-buffer@^1.1.5", "is-buffer@~1.1.1":
"integrity" "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
"version" "1.1.6"
@ -4865,15 +4867,15 @@
"jest-get-type" "^26.3.0"
"pretty-format" "^26.6.2"
"jest-diff@^29.1.2":
"integrity" "sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ=="
"resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-29.1.2.tgz"
"version" "29.1.2"
"jest-diff@^29.2.1":
"integrity" "sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA=="
"resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"chalk" "^4.0.0"
"diff-sequences" "^29.0.0"
"jest-get-type" "^29.0.0"
"pretty-format" "^29.1.2"
"diff-sequences" "^29.2.0"
"jest-get-type" "^29.2.0"
"pretty-format" "^29.2.1"
"jest-docblock@^26.0.0":
"integrity" "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w=="
@ -4923,10 +4925,10 @@
"resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz"
"version" "26.3.0"
"jest-get-type@^29.0.0":
"integrity" "sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw=="
"resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.0.0.tgz"
"version" "29.0.0"
"jest-get-type@^29.2.0":
"integrity" "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA=="
"resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz"
"version" "29.2.0"
"jest-haste-map@^26.6.2":
"integrity" "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w=="
@ -5011,15 +5013,15 @@
"jest-get-type" "^26.3.0"
"pretty-format" "^26.6.2"
"jest-matcher-utils@^29.1.2":
"integrity" "sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw=="
"resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz"
"version" "29.1.2"
"jest-matcher-utils@^29.2.2":
"integrity" "sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw=="
"resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz"
"version" "29.2.2"
dependencies:
"chalk" "^4.0.0"
"jest-diff" "^29.1.2"
"jest-get-type" "^29.0.0"
"pretty-format" "^29.1.2"
"jest-diff" "^29.2.1"
"jest-get-type" "^29.2.0"
"pretty-format" "^29.2.1"
"jest-message-util@^26.6.2":
"integrity" "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA=="
@ -5036,18 +5038,18 @@
"slash" "^3.0.0"
"stack-utils" "^2.0.2"
"jest-message-util@^29.1.2":
"integrity" "sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ=="
"resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.1.2.tgz"
"version" "29.1.2"
"jest-message-util@^29.2.1":
"integrity" "sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw=="
"resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"@babel/code-frame" "^7.12.13"
"@jest/types" "^29.1.2"
"@jest/types" "^29.2.1"
"@types/stack-utils" "^2.0.0"
"chalk" "^4.0.0"
"graceful-fs" "^4.2.9"
"micromatch" "^4.0.4"
"pretty-format" "^29.1.2"
"pretty-format" "^29.2.1"
"slash" "^3.0.0"
"stack-utils" "^2.0.3"
@ -5218,12 +5220,12 @@
"graceful-fs" "^4.2.9"
"picomatch" "^2.2.3"
"jest-util@^29.1.2":
"integrity" "sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ=="
"resolved" "https://registry.npmjs.org/jest-util/-/jest-util-29.1.2.tgz"
"version" "29.1.2"
"jest-util@^29.2.1":
"integrity" "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g=="
"resolved" "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"@jest/types" "^29.1.2"
"@jest/types" "^29.2.1"
"@types/node" "*"
"chalk" "^4.0.0"
"ci-info" "^3.2.0"
@ -5647,16 +5649,7 @@
dependencies:
"buffer-alloc" "^1.1.0"
"md5@^2.2.1":
"integrity" "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g=="
"resolved" "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz"
"version" "2.3.0"
dependencies:
"charenc" "0.0.2"
"crypt" "0.0.2"
"is-buffer" "~1.1.6"
"md5@~2.2.0":
"md5@^2.2.1", "md5@~2.2.0":
"integrity" "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ=="
"resolved" "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz"
"version" "2.2.1"
@ -6703,18 +6696,18 @@
"react-is" "^17.0.1"
"pretty-format@^29.0.0":
"integrity" "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg=="
"resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz"
"version" "29.1.2"
"integrity" "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA=="
"resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"@jest/schemas" "^29.0.0"
"ansi-styles" "^5.0.0"
"react-is" "^18.0.0"
"pretty-format@^29.1.2":
"integrity" "sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg=="
"resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.1.2.tgz"
"version" "29.1.2"
"pretty-format@^29.2.1":
"integrity" "sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA=="
"resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-29.2.1.tgz"
"version" "29.2.1"
dependencies:
"@jest/schemas" "^29.0.0"
"ansi-styles" "^5.0.0"
@ -6743,9 +6736,9 @@
"asap" "~2.0.3"
"promise@^8.2.0":
"integrity" "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg=="
"resolved" "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz"
"version" "8.2.0"
"integrity" "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg=="
"resolved" "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz"
"version" "8.3.0"
dependencies:
"asap" "~2.0.6"
@ -6757,7 +6750,7 @@
"kleur" "^3.0.3"
"sisteransi" "^1.0.5"
"prop-types@^15.7.2":
"prop-types@^15.7.2", "prop-types@^15.8.1":
"integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
"resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
"version" "15.8.1"
@ -6895,6 +6888,13 @@
"jscodeshift" "^0.13.1"
"nullthrows" "^1.1.1"
"react-native-date-picker@^4.2.5":
"integrity" "sha512-YjwiMpZEnVVS+ymLvmJDicVZ3pSR+nJHgtAhctMl6fO8f7iRNcYhY427gemlTBf2Ji+XIAK0Agyl255DhaemFw=="
"resolved" "https://registry.npmjs.org/react-native-date-picker/-/react-native-date-picker-4.2.5.tgz"
"version" "4.2.5"
dependencies:
"prop-types" "^15.8.1"
"react-native-dialog-input@^1.0.8":
"integrity" "sha512-W9YNMt6r+rUUMDEkOR1WMuGfSJw97ujB8H1xp8TjJTOnYVSlsf4aEP6t+J8tVk3XZaDcTawXgDjxH6E1WVWRog=="
"resolved" "https://registry.npmjs.org/react-native-dialog-input/-/react-native-dialog-input-1.0.8.tgz"
@ -7019,7 +7019,7 @@
"object-assign" "^4.1.1"
"react-is" "^16.12.0 || ^17.0.0 || ^18.0.0"
"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.2 || ^18.0.0", "react@^18.0.0", "react@>=16", "react@>=17.0.0", "react@18.0.0":
"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.2 || ^18.0.0", "react@^18.0.0", "react@>=17.0.0", "react@18.0.0":
"integrity" "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A=="
"resolved" "https://registry.npmjs.org/react/-/react-18.0.0.tgz"
"version" "18.0.0"
@ -7276,10 +7276,10 @@
"resolved" "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
"version" "1.0.4"
"rimraf@^2.5.4", "rimraf@^2.6.2":
"integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="
"resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"
"version" "2.7.1"
"rimraf@^2.5.4", "rimraf@^2.6.2", "rimraf@~2.6.2":
"integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="
"resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
"version" "2.6.3"
dependencies:
"glob" "^7.1.3"
@ -7309,13 +7309,6 @@
dependencies:
"glob" "^6.0.1"
"rimraf@~2.6.2":
"integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA=="
"resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz"
"version" "2.6.3"
dependencies:
"glob" "^7.1.3"
"rsvp@^4.8.4":
"integrity" "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA=="
"resolved" "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz"
@ -8112,14 +8105,14 @@
"version" "1.14.1"
"tslib@^2.0.1":
"integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
"version" "2.4.0"
"integrity" "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz"
"version" "2.4.1"
"tslib@^2.1.0":
"integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
"version" "2.4.0"
"integrity" "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA=="
"resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz"
"version" "2.4.1"
"type-check@~0.3.2":
"integrity" "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg=="

@ -1,108 +0,0 @@
#Drop all the tables
DROP TABLE Battle;
DROP TABLE Own;
DROP TABLE Message;
DROP TABLE Belong;
DROP TABLE ConvGroup;
DROP TABLE User;
DROP TABLE Skin;
DROP TABLE Game;
#Create the User table
CREATE TABLE User (
ID char(5) PRIMARY KEY,
Username varchar(20) NOT NULL,
Password varchar(20) NOT NULL,
Nationality varchar(20) NOT NULL,
Sex char(1) NOT NULL,
DateOfBirth date NOT NULL,
CurrentBobCoins bigint(255) DEFAULT 0,
TotalBobCoins bigint(255) DEFAULT 0,
NbGamePlayed bigint(255) DEFAULT 0
);
#Create the Skin table
CREATE TABLE Skin (
ID char(5) PRIMARY KEY,
Name varchar(20) UNIQUE NOT NULL,
Image varchar(20) UNIQUE NOT NULL
);
#Create the Own table
CREATE TABLE Own (
IDSkin char(5),
IDUser char(5),
CONSTRAINT FK_Skin FOREIGN KEY (IDSkin) REFERENCES User(ID),
CONSTRAINT FK_User FOREIGN KEY (IDUser) REFERENCES Skin(ID),
PRIMARY KEY (IDUser, IDSkin)
);
#Create the Game table
CREATE TABLE Game (
ID char(5) PRIMARY KEY,
Name varchar(20) UNIQUE NOT NULL
);
#Create the Match table
CREATE TABLE Battle (
ID char(5) PRIMARY KEY,
Winner char(5) NOT NULL,
Loser char(5) NOT NULL,
Game char(5) NOT NULL,
CONSTRAINT Fk_Winner FOREIGN KEY (Winner) REFERENCES User(ID),
CONSTRAINT Fk_Loser FOREIGN KEY (Loser) REFERENCES User(ID),
CONSTRAINT Fk_Game FOREIGN KEY (Game) REFERENCES Game(ID)
);
#Create the Group table
CREATE TABLE ConvGroup (
ID char(5) PRIMARY KEY,
Name varchar(20) NOT NULL
);
#Create the Message table
CREATE TABLE Message (
ID char(5) PRIMARY KEY,
Message text NOT NULL,
IDSender char(5) NOT NULL,
IDUserReceiver char(5),
IDGroupReceiver char(5),
CONSTRAINT Fk_Sender FOREIGN KEY (IDSender) REFERENCES User(ID),
CONSTRAINT Fk_UsRec FOREIGN KEY (IDUserReceiver) REFERENCES User(ID),
CONSTRAINT Fk_GrRec FOREIGN KEY (IDGroupReceiver) REFERENCES ConvGroup(ID)
);
#Create the Belong Table
CREATE TABLE Belong (
IDUser char(5),
IDGroup char(5),
CONSTRAINT Fk_UserID FOREIGN KEY (IDUser) REFERENCES User(ID),
CONSTRAINT Fk_Group FOREIGN KEY (IDGroup) REFERENCES ConvGroup(ID),
PRIMARY KEY (IDUser, IDGroup)
);
Loading…
Cancel
Save