checkpoint 2
This commit is contained in:
parent
43cd10c419
commit
494919f9aa
15 changed files with 4316 additions and 2535 deletions
3
identity-api/.gitignore
vendored
3
identity-api/.gitignore
vendored
|
@ -1 +1,2 @@
|
||||||
node_modules/
|
node_modules/
|
||||||
|
.yarn
|
1
identity-api/.yarnrc.yml
Normal file
1
identity-api/.yarnrc.yml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
nodeLinker: node-modules
|
|
@ -9,10 +9,10 @@ const JWT_SECRET = new TextEncoder().encode(
|
||||||
const JWT_ALG = 'HS256'
|
const JWT_ALG = 'HS256'
|
||||||
|
|
||||||
let users = {
|
let users = {
|
||||||
'mock@example.com': {
|
'jane@identity.net': {
|
||||||
uid: '005d6417-a23c-48bd-b348-eafeae649b94',
|
uid: '005d6417-a23c-48bd-b348-eafeae649b94',
|
||||||
password: 'mock_password',
|
password: '12345678901234567890',
|
||||||
name: 'Mock User',
|
name: 'Jane Doe',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,406 +1,557 @@
|
||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
# This file is generated by running "yarn install" inside your project.
|
||||||
# yarn lockfile v1
|
# Manual changes might be lost - proceed with caution!
|
||||||
|
|
||||||
|
__metadata:
|
||||||
|
version: 8
|
||||||
|
cacheKey: 10c0
|
||||||
|
|
||||||
"@fastify/ajv-compiler@^3.5.0":
|
"@fastify/ajv-compiler@npm:^3.5.0":
|
||||||
version "3.5.0"
|
version: 3.5.0
|
||||||
resolved "https://registry.yarnpkg.com/@fastify/ajv-compiler/-/ajv-compiler-3.5.0.tgz#459bff00fefbf86c96ec30e62e933d2379e46670"
|
resolution: "@fastify/ajv-compiler@npm:3.5.0"
|
||||||
integrity sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^8.11.0"
|
ajv: "npm:^8.11.0"
|
||||||
ajv-formats "^2.1.1"
|
ajv-formats: "npm:^2.1.1"
|
||||||
fast-uri "^2.0.0"
|
fast-uri: "npm:^2.0.0"
|
||||||
|
checksum: 10c0/d10df76b7016984bf70bc6aca99962468ec43e0be5772d4aa3a7735ae78be44fdbcb2c078fe0cfdffec076080dfb7cbdbf4b729e52b168039477126f9d023af0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@fastify/error@^3.3.0", "@fastify/error@^3.4.0":
|
"@fastify/error@npm:^3.3.0, @fastify/error@npm:^3.4.0":
|
||||||
version "3.4.1"
|
version: 3.4.1
|
||||||
resolved "https://registry.yarnpkg.com/@fastify/error/-/error-3.4.1.tgz#b14bb4cac3dd4ec614becbc643d1511331a6425c"
|
resolution: "@fastify/error@npm:3.4.1"
|
||||||
integrity sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==
|
checksum: 10c0/1f1a0faa8c86639afb6f4bd47a9cdc1f0f20ce0d6944340fbdec8218aaba91dc9cae9ed78e24e61bceb782a867efda2b9a6320091f00dcbb896d9c8a9bdf5f96
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@fastify/fast-json-stringify-compiler@^4.3.0":
|
"@fastify/fast-json-stringify-compiler@npm:^4.3.0":
|
||||||
version "4.3.0"
|
version: 4.3.0
|
||||||
resolved "https://registry.yarnpkg.com/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz#5df89fa4d1592cbb8780f78998355feb471646d5"
|
resolution: "@fastify/fast-json-stringify-compiler@npm:4.3.0"
|
||||||
integrity sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-json-stringify "^5.7.0"
|
fast-json-stringify: "npm:^5.7.0"
|
||||||
|
checksum: 10c0/513ef296f5ed682f7a460cfa6c5fb917a32fc540111b873c9937f944558e021492b18f30f9fd8dd20db252381a4428adbcc9f03a077f16c86d02f081eb490c7b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@fastify/merge-json-schemas@^0.1.0":
|
"@fastify/merge-json-schemas@npm:^0.1.0":
|
||||||
version "0.1.1"
|
version: 0.1.1
|
||||||
resolved "https://registry.yarnpkg.com/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz#3551857b8a17a24e8c799e9f51795edb07baa0bc"
|
resolution: "@fastify/merge-json-schemas@npm:0.1.1"
|
||||||
integrity sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal: "npm:^3.1.3"
|
||||||
|
checksum: 10c0/7979ce12724f7b98aea06f0bb9afb20dd869f0ff6fc697517135cbb54e0a36b062cbb38ec176fe43d1fc455576839240df8f33533939ace2d64a6218a6e6b9c1
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
abort-controller@^3.0.0:
|
"abort-controller@npm:^3.0.0":
|
||||||
version "3.0.0"
|
version: 3.0.0
|
||||||
resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
|
resolution: "abort-controller@npm:3.0.0"
|
||||||
integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
event-target-shim "^5.0.0"
|
event-target-shim: "npm:^5.0.0"
|
||||||
|
checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
abstract-logging@^2.0.1:
|
"abstract-logging@npm:^2.0.1":
|
||||||
version "2.0.1"
|
version: 2.0.1
|
||||||
resolved "https://registry.yarnpkg.com/abstract-logging/-/abstract-logging-2.0.1.tgz#6b0c371df212db7129b57d2e7fcf282b8bf1c839"
|
resolution: "abstract-logging@npm:2.0.1"
|
||||||
integrity sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==
|
checksum: 10c0/304879d9babcf6772260e5ddde632e6428e1f42f7a7a116d4689e97ad813a20e0ec2dd1e0a122f3617557f40091b9ca85735de4b48c17a2041268cb47b3f8ef1
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
ajv-formats@^2.1.1:
|
"ajv-formats@npm:^2.1.1":
|
||||||
version "2.1.1"
|
version: 2.1.1
|
||||||
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
|
resolution: "ajv-formats@npm:2.1.1"
|
||||||
integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^8.0.0"
|
ajv: "npm:^8.0.0"
|
||||||
|
peerDependencies:
|
||||||
|
ajv: ^8.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
ajv:
|
||||||
|
optional: true
|
||||||
|
checksum: 10c0/e43ba22e91b6a48d96224b83d260d3a3a561b42d391f8d3c6d2c1559f9aa5b253bfb306bc94bbeca1d967c014e15a6efe9a207309e95b3eaae07fcbcdc2af662
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
ajv-formats@^3.0.1:
|
"ajv-formats@npm:^3.0.1":
|
||||||
version "3.0.1"
|
version: 3.0.1
|
||||||
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578"
|
resolution: "ajv-formats@npm:3.0.1"
|
||||||
integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ajv "^8.0.0"
|
ajv: "npm:^8.0.0"
|
||||||
|
peerDependencies:
|
||||||
|
ajv: ^8.0.0
|
||||||
|
peerDependenciesMeta:
|
||||||
|
ajv:
|
||||||
|
optional: true
|
||||||
|
checksum: 10c0/168d6bca1ea9f163b41c8147bae537e67bd963357a5488a1eaf3abe8baa8eec806d4e45f15b10767e6020679315c7e1e5e6803088dfb84efa2b4e9353b83dd0a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
ajv@^8.0.0, ajv@^8.10.0, ajv@^8.11.0:
|
"ajv@npm:^8.0.0, ajv@npm:^8.10.0, ajv@npm:^8.11.0":
|
||||||
version "8.16.0"
|
version: 8.16.0
|
||||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4"
|
resolution: "ajv@npm:8.16.0"
|
||||||
integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal: "npm:^3.1.3"
|
||||||
json-schema-traverse "^1.0.0"
|
json-schema-traverse: "npm:^1.0.0"
|
||||||
require-from-string "^2.0.2"
|
require-from-string: "npm:^2.0.2"
|
||||||
uri-js "^4.4.1"
|
uri-js: "npm:^4.4.1"
|
||||||
|
checksum: 10c0/6fc38aa8fd4fbfaa7096ac049e48c0cb440db36b76fef2d7d5b7d92b102735670d055d412d19176c08c9d48eaa9d06661b67e59f04943dc71ab1551e0484f88c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
atomic-sleep@^1.0.0:
|
"atomic-sleep@npm:^1.0.0":
|
||||||
version "1.0.0"
|
version: 1.0.0
|
||||||
resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
|
resolution: "atomic-sleep@npm:1.0.0"
|
||||||
integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
|
checksum: 10c0/e329a6665512736a9bbb073e1761b4ec102f7926cce35037753146a9db9c8104f5044c1662e4a863576ce544fb8be27cd2be6bc8c1a40147d03f31eb1cfb6e8a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
avvio@^8.3.0:
|
"avvio@npm:^8.3.0":
|
||||||
version "8.3.2"
|
version: 8.3.2
|
||||||
resolved "https://registry.yarnpkg.com/avvio/-/avvio-8.3.2.tgz#cb5844a612e8421d1f3aef8895ef7fa12f73563f"
|
resolution: "avvio@npm:8.3.2"
|
||||||
integrity sha512-st8e519GWHa/azv8S87mcJvZs4WsgTBjOw/Ih1CP6u+8SZvcOeAYNG6JbsIrAUUJJ7JfmrnOkR8ipDS+u9SIRQ==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fastify/error" "^3.3.0"
|
"@fastify/error": "npm:^3.3.0"
|
||||||
fastq "^1.17.1"
|
fastq: "npm:^1.17.1"
|
||||||
|
checksum: 10c0/280767ca1259cac1e78fc75ee4f1f6a735914e045015b1ac4c0ce9c5b0933edcb7e9a31fb286a479e51e56562b352dcfa35941e6f555edd341ed5d355e36e4ac
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
base64-js@^1.3.1:
|
"base64-js@npm:^1.3.1":
|
||||||
version "1.5.1"
|
version: 1.5.1
|
||||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
resolution: "base64-js@npm:1.5.1"
|
||||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
buffer@^6.0.3:
|
"buffer@npm:^6.0.3":
|
||||||
version "6.0.3"
|
version: 6.0.3
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
resolution: "buffer@npm:6.0.3"
|
||||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js "^1.3.1"
|
base64-js: "npm:^1.3.1"
|
||||||
ieee754 "^1.2.1"
|
ieee754: "npm:^1.2.1"
|
||||||
|
checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
cookie@^0.6.0:
|
"cookie@npm:^0.6.0":
|
||||||
version "0.6.0"
|
version: 0.6.0
|
||||||
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
|
resolution: "cookie@npm:0.6.0"
|
||||||
integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
|
checksum: 10c0/f2318b31af7a31b4ddb4a678d024514df5e705f9be5909a192d7f116cfb6d45cbacf96a473fa733faa95050e7cff26e7832bb3ef94751592f1387b71c8956686
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
event-target-shim@^5.0.0:
|
"event-target-shim@npm:^5.0.0":
|
||||||
version "5.0.1"
|
version: 5.0.1
|
||||||
resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
|
resolution: "event-target-shim@npm:5.0.1"
|
||||||
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
|
checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
events@^3.3.0:
|
"events@npm:^3.3.0":
|
||||||
version "3.3.0"
|
version: 3.3.0
|
||||||
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
resolution: "events@npm:3.3.0"
|
||||||
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
checksum: 10c0/d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-content-type-parse@^1.1.0:
|
"fast-content-type-parse@npm:^1.1.0":
|
||||||
version "1.1.0"
|
version: 1.1.0
|
||||||
resolved "https://registry.yarnpkg.com/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz#4087162bf5af3294d4726ff29b334f72e3a1092c"
|
resolution: "fast-content-type-parse@npm:1.1.0"
|
||||||
integrity sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==
|
checksum: 10c0/882bf990fa5d64be1825ce183818db43900ece0d7ef184cb9409bae8ed1001acbe536a657b1496382cb3e308e71ab39cc399bbdae70cba1745eecaeca4e55384
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-decode-uri-component@^1.0.1:
|
"fast-decode-uri-component@npm:^1.0.1":
|
||||||
version "1.0.1"
|
version: 1.0.1
|
||||||
resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543"
|
resolution: "fast-decode-uri-component@npm:1.0.1"
|
||||||
integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==
|
checksum: 10c0/039d50c2e99d64f999c3f2126c23fbf75a04a4117e218a149ca0b1d2aeb8c834b7b19d643b9d35d4eabce357189a6a94085f78cf48869e6e26cc59b036284bc3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-deep-equal@^3.1.3:
|
"fast-deep-equal@npm:^3.1.3":
|
||||||
version "3.1.3"
|
version: 3.1.3
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
resolution: "fast-deep-equal@npm:3.1.3"
|
||||||
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
|
checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-json-stringify@^5.7.0, fast-json-stringify@^5.8.0:
|
"fast-json-stringify@npm:^5.7.0, fast-json-stringify@npm:^5.8.0":
|
||||||
version "5.16.0"
|
version: 5.16.0
|
||||||
resolved "https://registry.yarnpkg.com/fast-json-stringify/-/fast-json-stringify-5.16.0.tgz#e35baa9f85a61f81680b2845969f91bd02d1b30e"
|
resolution: "fast-json-stringify@npm:5.16.0"
|
||||||
integrity sha512-A4bg6E15QrkuVO3f0SwIASgzMzR6XC4qTyTqhf3hYXy0iazbAdZKwkE+ox4WgzKyzM6ygvbdq3r134UjOaaAnA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fastify/merge-json-schemas" "^0.1.0"
|
"@fastify/merge-json-schemas": "npm:^0.1.0"
|
||||||
ajv "^8.10.0"
|
ajv: "npm:^8.10.0"
|
||||||
ajv-formats "^3.0.1"
|
ajv-formats: "npm:^3.0.1"
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal: "npm:^3.1.3"
|
||||||
fast-uri "^2.1.0"
|
fast-uri: "npm:^2.1.0"
|
||||||
json-schema-ref-resolver "^1.0.1"
|
json-schema-ref-resolver: "npm:^1.0.1"
|
||||||
rfdc "^1.2.0"
|
rfdc: "npm:^1.2.0"
|
||||||
|
checksum: 10c0/03d12097eb054dbfd585b494a5ff37f7fca5e68fd167029b91156423cc78eb854ff40c6fa6cc6f56305dabc4616836b7dbbddd05c3fed306444b751b428544f1
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-querystring@^1.0.0:
|
"fast-querystring@npm:^1.0.0":
|
||||||
version "1.1.2"
|
version: 1.1.2
|
||||||
resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53"
|
resolution: "fast-querystring@npm:1.1.2"
|
||||||
integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-decode-uri-component "^1.0.1"
|
fast-decode-uri-component: "npm:^1.0.1"
|
||||||
|
checksum: 10c0/e8223273a9b199722f760f5a047a77ad049a14bd444b821502cb8218f5925e3a5fffb56b64389bca73ab2ac6f1aa7aebbe4e203e5f6e53ff5978de97c0fde4e3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-redact@^3.1.1:
|
"fast-redact@npm:^3.1.1":
|
||||||
version "3.5.0"
|
version: 3.5.0
|
||||||
resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.5.0.tgz#e9ea02f7e57d0cd8438180083e93077e496285e4"
|
resolution: "fast-redact@npm:3.5.0"
|
||||||
integrity sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==
|
checksum: 10c0/7e2ce4aad6e7535e0775bf12bd3e4f2e53d8051d8b630e0fa9e67f68cb0b0e6070d2f7a94b1d0522ef07e32f7c7cda5755e2b677a6538f1e9070ca053c42343a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fast-uri@^2.0.0, fast-uri@^2.1.0:
|
"fast-uri@npm:^2.0.0, fast-uri@npm:^2.1.0":
|
||||||
version "2.4.0"
|
version: 2.4.0
|
||||||
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-2.4.0.tgz#67eae6fbbe9f25339d5d3f4c4234787b65d7d55e"
|
resolution: "fast-uri@npm:2.4.0"
|
||||||
integrity sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==
|
checksum: 10c0/300453cfe2f7d5ec16be0f2c8dc5b280edbaca59440b2deb4ab56ac0f584637179e9ee7539d0b70ef0fce9608245ebfa75307c84fa4829b1065c3b7ef7dcf706
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fastify@^4.27.0:
|
"fastify@npm:^4.27.0":
|
||||||
version "4.27.0"
|
version: 4.27.0
|
||||||
resolved "https://registry.yarnpkg.com/fastify/-/fastify-4.27.0.tgz#e4a9b2a0a7b9efaeaf1140d47fdd4f91b5fcacb1"
|
resolution: "fastify@npm:4.27.0"
|
||||||
integrity sha512-ci9IXzbigB8dyi0mSy3faa3Bsj0xWAPb9JeT4KRzubdSb6pNhcADRUaXCBml6V1Ss/a05kbtQls5LBmhHydoTA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
"@fastify/ajv-compiler" "^3.5.0"
|
"@fastify/ajv-compiler": "npm:^3.5.0"
|
||||||
"@fastify/error" "^3.4.0"
|
"@fastify/error": "npm:^3.4.0"
|
||||||
"@fastify/fast-json-stringify-compiler" "^4.3.0"
|
"@fastify/fast-json-stringify-compiler": "npm:^4.3.0"
|
||||||
abstract-logging "^2.0.1"
|
abstract-logging: "npm:^2.0.1"
|
||||||
avvio "^8.3.0"
|
avvio: "npm:^8.3.0"
|
||||||
fast-content-type-parse "^1.1.0"
|
fast-content-type-parse: "npm:^1.1.0"
|
||||||
fast-json-stringify "^5.8.0"
|
fast-json-stringify: "npm:^5.8.0"
|
||||||
find-my-way "^8.0.0"
|
find-my-way: "npm:^8.0.0"
|
||||||
light-my-request "^5.11.0"
|
light-my-request: "npm:^5.11.0"
|
||||||
pino "^9.0.0"
|
pino: "npm:^9.0.0"
|
||||||
process-warning "^3.0.0"
|
process-warning: "npm:^3.0.0"
|
||||||
proxy-addr "^2.0.7"
|
proxy-addr: "npm:^2.0.7"
|
||||||
rfdc "^1.3.0"
|
rfdc: "npm:^1.3.0"
|
||||||
secure-json-parse "^2.7.0"
|
secure-json-parse: "npm:^2.7.0"
|
||||||
semver "^7.5.4"
|
semver: "npm:^7.5.4"
|
||||||
toad-cache "^3.3.0"
|
toad-cache: "npm:^3.3.0"
|
||||||
|
checksum: 10c0/879e9d3f6b9521bea29255c79ca1ddf3dd4c017937a25e7348d7686625c7dd56f21af18e6db2ecdd41d07e5c73a779ab0bb1f5d6b081909bf3e8caadaf669160
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
fastq@^1.17.1:
|
"fastq@npm:^1.17.1":
|
||||||
version "1.17.1"
|
version: 1.17.1
|
||||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
|
resolution: "fastq@npm:1.17.1"
|
||||||
integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
reusify "^1.0.4"
|
reusify: "npm:^1.0.4"
|
||||||
|
checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
find-my-way@^8.0.0:
|
"find-my-way@npm:^8.0.0":
|
||||||
version "8.2.0"
|
version: 8.2.0
|
||||||
resolved "https://registry.yarnpkg.com/find-my-way/-/find-my-way-8.2.0.tgz#ef1b83d008114a300118c9c707d8dc65947d9960"
|
resolution: "find-my-way@npm:8.2.0"
|
||||||
integrity sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.3"
|
fast-deep-equal: "npm:^3.1.3"
|
||||||
fast-querystring "^1.0.0"
|
fast-querystring: "npm:^1.0.0"
|
||||||
safe-regex2 "^3.1.0"
|
safe-regex2: "npm:^3.1.0"
|
||||||
|
checksum: 10c0/f0f0370215f7b693729483481cd8c642a2e42e7ec7296f099faf46c523a3cac2bcafc24229dc971f87def36c5fa1fdf7f08a7238144affd2ab3c57f75b9aaca6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
forwarded@0.2.0:
|
"forwarded@npm:0.2.0":
|
||||||
version "0.2.0"
|
version: 0.2.0
|
||||||
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
resolution: "forwarded@npm:0.2.0"
|
||||||
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
checksum: 10c0/9b67c3fac86acdbc9ae47ba1ddd5f2f81526fa4c8226863ede5600a3f7c7416ef451f6f1e240a3cc32d0fd79fcfe6beb08fd0da454f360032bde70bf80afbb33
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
ieee754@^1.2.1:
|
"identity-api@workspace:.":
|
||||||
version "1.2.1"
|
version: 0.0.0-use.local
|
||||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
resolution: "identity-api@workspace:."
|
||||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
|
||||||
|
|
||||||
ipaddr.js@1.9.1:
|
|
||||||
version "1.9.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
|
||||||
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
|
||||||
|
|
||||||
jose@^5.4.0:
|
|
||||||
version "5.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/jose/-/jose-5.4.0.tgz#4f6c2357e7b3cd4bc10ec65bb29e677d7adfbc84"
|
|
||||||
integrity sha512-6rpxTHPAQyWMb9A35BroFl1Sp0ST3DpPcm5EVIxZxdH+e0Hv9fwhyB3XLKFUcHNpdSDnETmBfuPPTTlYz5+USw==
|
|
||||||
|
|
||||||
json-schema-ref-resolver@^1.0.1:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz#6586f483b76254784fc1d2120f717bdc9f0a99bf"
|
|
||||||
integrity sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal "^3.1.3"
|
fastify: "npm:^4.27.0"
|
||||||
|
jose: "npm:^5.4.0"
|
||||||
|
uuid: "npm:^10.0.0"
|
||||||
|
languageName: unknown
|
||||||
|
linkType: soft
|
||||||
|
|
||||||
json-schema-traverse@^1.0.0:
|
"ieee754@npm:^1.2.1":
|
||||||
version "1.0.0"
|
version: 1.2.1
|
||||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
|
resolution: "ieee754@npm:1.2.1"
|
||||||
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
|
checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
light-my-request@^5.11.0:
|
"ipaddr.js@npm:1.9.1":
|
||||||
version "5.13.0"
|
version: 1.9.1
|
||||||
resolved "https://registry.yarnpkg.com/light-my-request/-/light-my-request-5.13.0.tgz#b29905e55e8605b77fee2a946e17b219bca35113"
|
resolution: "ipaddr.js@npm:1.9.1"
|
||||||
integrity sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==
|
checksum: 10c0/0486e775047971d3fdb5fb4f063829bac45af299ae0b82dcf3afa2145338e08290563a2a70f34b732d795ecc8311902e541a8530eeb30d75860a78ff4e94ce2a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"jose@npm:^5.4.0":
|
||||||
|
version: 5.4.0
|
||||||
|
resolution: "jose@npm:5.4.0"
|
||||||
|
checksum: 10c0/ef880ee7d93d2758f9b9b0883eef2bb10319778142fad8cdea9d4f4322ca4dfae3c1ee87960c7f29c55b9d78460ea3de8dc462987ea23d821596fb5916425bc0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"json-schema-ref-resolver@npm:^1.0.1":
|
||||||
|
version: 1.0.1
|
||||||
|
resolution: "json-schema-ref-resolver@npm:1.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
cookie "^0.6.0"
|
fast-deep-equal: "npm:^3.1.3"
|
||||||
process-warning "^3.0.0"
|
checksum: 10c0/aa89d88108c0109ae35b913c89c132fb50c00f3b99fc8a8309b524b9e3a6a77414f19a6a35a1253871462984cbabc74279ebbd9bf103c6629fb7b37c9fb59bcf
|
||||||
set-cookie-parser "^2.4.1"
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
on-exit-leak-free@^2.1.0:
|
"json-schema-traverse@npm:^1.0.0":
|
||||||
version "2.1.2"
|
version: 1.0.0
|
||||||
resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz#fed195c9ebddb7d9e4c3842f93f281ac8dadd3b8"
|
resolution: "json-schema-traverse@npm:1.0.0"
|
||||||
integrity sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==
|
checksum: 10c0/71e30015d7f3d6dc1c316d6298047c8ef98a06d31ad064919976583eb61e1018a60a0067338f0f79cabc00d84af3fcc489bd48ce8a46ea165d9541ba17fb30c6
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
pino-abstract-transport@^1.2.0:
|
"light-my-request@npm:^5.11.0":
|
||||||
version "1.2.0"
|
version: 5.13.0
|
||||||
resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz#97f9f2631931e242da531b5c66d3079c12c9d1b5"
|
resolution: "light-my-request@npm:5.13.0"
|
||||||
integrity sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
readable-stream "^4.0.0"
|
cookie: "npm:^0.6.0"
|
||||||
split2 "^4.0.0"
|
process-warning: "npm:^3.0.0"
|
||||||
|
set-cookie-parser: "npm:^2.4.1"
|
||||||
|
checksum: 10c0/460117f30e09c2eec3a62e6ba4264111a28b881fdd0ea79493ed889ebf69a56482d603f0685a0e2930b5ec53205d28c46f3cdf13d7888914852eb7c4dac83285
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
pino-std-serializers@^7.0.0:
|
"on-exit-leak-free@npm:^2.1.0":
|
||||||
version "7.0.0"
|
version: 2.1.2
|
||||||
resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz#7c625038b13718dbbd84ab446bd673dc52259e3b"
|
resolution: "on-exit-leak-free@npm:2.1.2"
|
||||||
integrity sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==
|
checksum: 10c0/faea2e1c9d696ecee919026c32be8d6a633a7ac1240b3b87e944a380e8a11dc9c95c4a1f8fb0568de7ab8db3823e790f12bda45296b1d111e341aad3922a0570
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
pino@^9.0.0:
|
"pino-abstract-transport@npm:^1.2.0":
|
||||||
version "9.2.0"
|
version: 1.2.0
|
||||||
resolved "https://registry.yarnpkg.com/pino/-/pino-9.2.0.tgz#e77a9516f3a3e5550d9b76d9f65ac6118ef02bdd"
|
resolution: "pino-abstract-transport@npm:1.2.0"
|
||||||
integrity sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
atomic-sleep "^1.0.0"
|
readable-stream: "npm:^4.0.0"
|
||||||
fast-redact "^3.1.1"
|
split2: "npm:^4.0.0"
|
||||||
on-exit-leak-free "^2.1.0"
|
checksum: 10c0/b4ab59529b7a91f488440147fc58ee0827a6c1c5ca3627292339354b1381072c1a6bfa9b46d03ad27872589e8477ecf74da12cf286e1e6b665ac64a3b806bf07
|
||||||
pino-abstract-transport "^1.2.0"
|
languageName: node
|
||||||
pino-std-serializers "^7.0.0"
|
linkType: hard
|
||||||
process-warning "^3.0.0"
|
|
||||||
quick-format-unescaped "^4.0.3"
|
|
||||||
real-require "^0.2.0"
|
|
||||||
safe-stable-stringify "^2.3.1"
|
|
||||||
sonic-boom "^4.0.1"
|
|
||||||
thread-stream "^3.0.0"
|
|
||||||
|
|
||||||
process-warning@^3.0.0:
|
"pino-std-serializers@npm:^7.0.0":
|
||||||
version "3.0.0"
|
version: 7.0.0
|
||||||
resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-3.0.0.tgz#96e5b88884187a1dce6f5c3166d611132058710b"
|
resolution: "pino-std-serializers@npm:7.0.0"
|
||||||
integrity sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==
|
checksum: 10c0/73e694d542e8de94445a03a98396cf383306de41fd75ecc07085d57ed7a57896198508a0dec6eefad8d701044af21eb27253ccc352586a03cf0d4a0bd25b4133
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
process@^0.11.10:
|
"pino@npm:^9.0.0":
|
||||||
version "0.11.10"
|
version: 9.2.0
|
||||||
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
|
resolution: "pino@npm:9.2.0"
|
||||||
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
|
|
||||||
|
|
||||||
proxy-addr@^2.0.7:
|
|
||||||
version "2.0.7"
|
|
||||||
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
|
|
||||||
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
forwarded "0.2.0"
|
atomic-sleep: "npm:^1.0.0"
|
||||||
ipaddr.js "1.9.1"
|
fast-redact: "npm:^3.1.1"
|
||||||
|
on-exit-leak-free: "npm:^2.1.0"
|
||||||
|
pino-abstract-transport: "npm:^1.2.0"
|
||||||
|
pino-std-serializers: "npm:^7.0.0"
|
||||||
|
process-warning: "npm:^3.0.0"
|
||||||
|
quick-format-unescaped: "npm:^4.0.3"
|
||||||
|
real-require: "npm:^0.2.0"
|
||||||
|
safe-stable-stringify: "npm:^2.3.1"
|
||||||
|
sonic-boom: "npm:^4.0.1"
|
||||||
|
thread-stream: "npm:^3.0.0"
|
||||||
|
bin:
|
||||||
|
pino: bin.js
|
||||||
|
checksum: 10c0/5fbd226ff7dab0961232b5aa5eca0530cdc5bb29f6bf17d929e42239293b1a587a26cc311db6abc1090c9dd57e8f7b031eae341b41d00d4a642b4f1736474c80
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
punycode@^2.1.0:
|
"process-warning@npm:^3.0.0":
|
||||||
version "2.3.1"
|
version: 3.0.0
|
||||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
|
resolution: "process-warning@npm:3.0.0"
|
||||||
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
|
checksum: 10c0/60f3c8ddee586f0706c1e6cb5aa9c86df05774b9330d792d7c8851cf0031afd759d665404d07037e0b4901b55c44a423f07bdc465c63de07d8d23196bb403622
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
quick-format-unescaped@^4.0.3:
|
"process@npm:^0.11.10":
|
||||||
version "4.0.4"
|
version: 0.11.10
|
||||||
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
|
resolution: "process@npm:0.11.10"
|
||||||
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
|
checksum: 10c0/40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
readable-stream@^4.0.0:
|
"proxy-addr@npm:^2.0.7":
|
||||||
version "4.5.2"
|
version: 2.0.7
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09"
|
resolution: "proxy-addr@npm:2.0.7"
|
||||||
integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
abort-controller "^3.0.0"
|
forwarded: "npm:0.2.0"
|
||||||
buffer "^6.0.3"
|
ipaddr.js: "npm:1.9.1"
|
||||||
events "^3.3.0"
|
checksum: 10c0/c3eed999781a35f7fd935f398b6d8920b6fb00bbc14287bc6de78128ccc1a02c89b95b56742bf7cf0362cc333c61d138532049c7dedc7a328ef13343eff81210
|
||||||
process "^0.11.10"
|
languageName: node
|
||||||
string_decoder "^1.3.0"
|
linkType: hard
|
||||||
|
|
||||||
real-require@^0.2.0:
|
"punycode@npm:^2.1.0":
|
||||||
version "0.2.0"
|
version: 2.3.1
|
||||||
resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.2.0.tgz#209632dea1810be2ae063a6ac084fee7e33fba78"
|
resolution: "punycode@npm:2.3.1"
|
||||||
integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==
|
checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
require-from-string@^2.0.2:
|
"quick-format-unescaped@npm:^4.0.3":
|
||||||
version "2.0.2"
|
version: 4.0.4
|
||||||
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
resolution: "quick-format-unescaped@npm:4.0.4"
|
||||||
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
checksum: 10c0/fe5acc6f775b172ca5b4373df26f7e4fd347975578199e7d74b2ae4077f0af05baa27d231de1e80e8f72d88275ccc6028568a7a8c9ee5e7368ace0e18eff93a4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
ret@~0.4.0:
|
"readable-stream@npm:^4.0.0":
|
||||||
version "0.4.3"
|
version: 4.5.2
|
||||||
resolved "https://registry.yarnpkg.com/ret/-/ret-0.4.3.tgz#5243fa30e704a2e78a9b9b1e86079e15891aa85c"
|
resolution: "readable-stream@npm:4.5.2"
|
||||||
integrity sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==
|
|
||||||
|
|
||||||
reusify@^1.0.4:
|
|
||||||
version "1.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
|
||||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
|
||||||
|
|
||||||
rfdc@^1.2.0, rfdc@^1.3.0:
|
|
||||||
version "1.3.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
|
|
||||||
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
|
|
||||||
|
|
||||||
safe-buffer@~5.2.0:
|
|
||||||
version "5.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
|
||||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
|
||||||
|
|
||||||
safe-regex2@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/safe-regex2/-/safe-regex2-3.1.0.tgz#fd7ec23908e2c730e1ce7359a5b72883a87d2763"
|
|
||||||
integrity sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
ret "~0.4.0"
|
abort-controller: "npm:^3.0.0"
|
||||||
|
buffer: "npm:^6.0.3"
|
||||||
|
events: "npm:^3.3.0"
|
||||||
|
process: "npm:^0.11.10"
|
||||||
|
string_decoder: "npm:^1.3.0"
|
||||||
|
checksum: 10c0/a2c80e0e53aabd91d7df0330929e32d0a73219f9477dbbb18472f6fdd6a11a699fc5d172a1beff98d50eae4f1496c950ffa85b7cc2c4c196963f289a5f39275d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
safe-stable-stringify@^2.3.1:
|
"real-require@npm:^0.2.0":
|
||||||
version "2.4.3"
|
version: 0.2.0
|
||||||
resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
|
resolution: "real-require@npm:0.2.0"
|
||||||
integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
|
checksum: 10c0/23eea5623642f0477412ef8b91acd3969015a1501ed34992ada0e3af521d3c865bb2fe4cdbfec5fe4b505f6d1ef6a03e5c3652520837a8c3b53decff7e74b6a0
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
secure-json-parse@^2.7.0:
|
"require-from-string@npm:^2.0.2":
|
||||||
version "2.7.0"
|
version: 2.0.2
|
||||||
resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862"
|
resolution: "require-from-string@npm:2.0.2"
|
||||||
integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==
|
checksum: 10c0/aaa267e0c5b022fc5fd4eef49d8285086b15f2a1c54b28240fdf03599cbd9c26049fee3eab894f2e1f6ca65e513b030a7c264201e3f005601e80c49fb2937ce2
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
semver@^7.5.4:
|
"ret@npm:~0.4.0":
|
||||||
version "7.6.2"
|
version: 0.4.3
|
||||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
|
resolution: "ret@npm:0.4.3"
|
||||||
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
|
checksum: 10c0/93e4e81cf393ebbafa1a26816e0b22ad0e2539c10e267d46ce8754c3f385b7aa839772ee1f83fdd2487b43d1081f29af41a19160e85456311f6f1778e14ba66b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
set-cookie-parser@^2.4.1:
|
"reusify@npm:^1.0.4":
|
||||||
version "2.6.0"
|
version: 1.0.4
|
||||||
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51"
|
resolution: "reusify@npm:1.0.4"
|
||||||
integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==
|
checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
sonic-boom@^4.0.1:
|
"rfdc@npm:^1.2.0, rfdc@npm:^1.3.0":
|
||||||
version "4.0.1"
|
version: 1.3.1
|
||||||
resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-4.0.1.tgz#515b7cef2c9290cb362c4536388ddeece07aed30"
|
resolution: "rfdc@npm:1.3.1"
|
||||||
integrity sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==
|
checksum: 10c0/69f65e3ed30970f8055fac9fbbef9ce578800ca19554eab1dcbffe73a4b8aef536bc4248313889cf25e3b4e38b212c721eabe30856575bf2b2bc3d90f8ba93ef
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"safe-buffer@npm:~5.2.0":
|
||||||
|
version: 5.2.1
|
||||||
|
resolution: "safe-buffer@npm:5.2.1"
|
||||||
|
checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"safe-regex2@npm:^3.1.0":
|
||||||
|
version: 3.1.0
|
||||||
|
resolution: "safe-regex2@npm:3.1.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
atomic-sleep "^1.0.0"
|
ret: "npm:~0.4.0"
|
||||||
|
checksum: 10c0/5e5e7f9f116ddfd324b1fdc65ad4470937eebc8883d34669ce8c5afbda64f1954e5e4c2e754ef6281e5f6762e0b8c4e20fb9eec4d47355526f8cc1f6a9764624
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
split2@^4.0.0:
|
"safe-stable-stringify@npm:^2.3.1":
|
||||||
version "4.2.0"
|
version: 2.4.3
|
||||||
resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
|
resolution: "safe-stable-stringify@npm:2.4.3"
|
||||||
integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
|
checksum: 10c0/81dede06b8f2ae794efd868b1e281e3c9000e57b39801c6c162267eb9efda17bd7a9eafa7379e1f1cacd528d4ced7c80d7460ad26f62ada7c9e01dec61b2e768
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
string_decoder@^1.3.0:
|
"secure-json-parse@npm:^2.7.0":
|
||||||
version "1.3.0"
|
version: 2.7.0
|
||||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
resolution: "secure-json-parse@npm:2.7.0"
|
||||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
checksum: 10c0/f57eb6a44a38a3eeaf3548228585d769d788f59007454214fab9ed7f01fbf2e0f1929111da6db28cf0bcc1a2e89db5219a59e83eeaec3a54e413a0197ce879e4
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"semver@npm:^7.5.4":
|
||||||
|
version: 7.6.2
|
||||||
|
resolution: "semver@npm:7.6.2"
|
||||||
|
bin:
|
||||||
|
semver: bin/semver.js
|
||||||
|
checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"set-cookie-parser@npm:^2.4.1":
|
||||||
|
version: 2.6.0
|
||||||
|
resolution: "set-cookie-parser@npm:2.6.0"
|
||||||
|
checksum: 10c0/739da029f0e56806a103fcd5501d9c475e19e77bd8274192d7ae5c374ae714a82bba9a7ac00b0330a18227c5644b08df9e442240527be578f5a6030f9bb2bb80
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"sonic-boom@npm:^4.0.1":
|
||||||
|
version: 4.0.1
|
||||||
|
resolution: "sonic-boom@npm:4.0.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.2.0"
|
atomic-sleep: "npm:^1.0.0"
|
||||||
|
checksum: 10c0/7b467f2bc8af7ff60bf210382f21c59728cc4b769af9b62c31dd88723f5cc472752d2320736cc366acc7c765ddd5bec3072c033b0faf249923f576a7453ba9d3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
thread-stream@^3.0.0:
|
"split2@npm:^4.0.0":
|
||||||
version "3.0.2"
|
version: 4.2.0
|
||||||
resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-3.0.2.tgz#ff6c557ed0cdd1f6c82b802481fbc22e11b8a006"
|
resolution: "split2@npm:4.2.0"
|
||||||
integrity sha512-cBL4xF2A3lSINV4rD5tyqnKH4z/TgWPvT+NaVhJDSwK962oo/Ye7cHSMbDzwcu7tAE1SfU6Q4XtV6Hucmi6Hlw==
|
checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"string_decoder@npm:^1.3.0":
|
||||||
|
version: 1.3.0
|
||||||
|
resolution: "string_decoder@npm:1.3.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
real-require "^0.2.0"
|
safe-buffer: "npm:~5.2.0"
|
||||||
|
checksum: 10c0/810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
toad-cache@^3.3.0:
|
"thread-stream@npm:^3.0.0":
|
||||||
version "3.7.0"
|
version: 3.0.2
|
||||||
resolved "https://registry.yarnpkg.com/toad-cache/-/toad-cache-3.7.0.tgz#b9b63304ea7c45ec34d91f1d2fa513517025c441"
|
resolution: "thread-stream@npm:3.0.2"
|
||||||
integrity sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==
|
|
||||||
|
|
||||||
uri-js@^4.4.1:
|
|
||||||
version "4.4.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
|
||||||
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
|
|
||||||
dependencies:
|
dependencies:
|
||||||
punycode "^2.1.0"
|
real-require: "npm:^0.2.0"
|
||||||
|
checksum: 10c0/12b797b38eafdb480ed8931b288c0ad1833a7d2d18b5aeba955ffbe054c53681f19b46b299f2c24d86fd52f786850586d864a4bb025d22155c273c9e5296a1ed
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
uuid@^10.0.0:
|
"toad-cache@npm:^3.3.0":
|
||||||
version "10.0.0"
|
version: 3.7.0
|
||||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
|
resolution: "toad-cache@npm:3.7.0"
|
||||||
integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==
|
checksum: 10c0/7dae2782ee20b22c9798bb8b71dec7ec6a0091021d2ea9dd6e8afccab6b65b358fdba49a02209fac574499702e2c000660721516c87c2538d1b2c0ba03e8c0c3
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"uri-js@npm:^4.4.1":
|
||||||
|
version: 4.4.1
|
||||||
|
resolution: "uri-js@npm:4.4.1"
|
||||||
|
dependencies:
|
||||||
|
punycode: "npm:^2.1.0"
|
||||||
|
checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"uuid@npm:^10.0.0":
|
||||||
|
version: 10.0.0
|
||||||
|
resolution: "uuid@npm:10.0.0"
|
||||||
|
bin:
|
||||||
|
uuid: dist/bin/uuid
|
||||||
|
checksum: 10c0/eab18c27fe4ab9fb9709a5d5f40119b45f2ec8314f8d4cf12ce27e4c6f4ffa4a6321dc7db6c515068fa373c075b49691ba969f0010bf37f44c37ca40cd6bf7fe
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
1
identity-web/.gitignore
vendored
1
identity-web/.gitignore
vendored
|
@ -8,3 +8,4 @@ node_modules
|
||||||
!.env.example
|
!.env.example
|
||||||
vite.config.js.timestamp-*
|
vite.config.js.timestamp-*
|
||||||
vite.config.ts.timestamp-*
|
vite.config.ts.timestamp-*
|
||||||
|
.yarn
|
1
identity-web/.yarnrc.yml
Normal file
1
identity-web/.yarnrc.yml
Normal file
|
@ -0,0 +1 @@
|
||||||
|
nodeLinker: node-modules
|
|
@ -21,18 +21,11 @@ async function asJson<R>(request: Promise<Response>): Promise<R> {
|
||||||
return (await req.json() as R)
|
return (await req.json() as R)
|
||||||
}
|
}
|
||||||
|
|
||||||
export type LoginCredentials = {
|
export type LoginResponse = { token: string, } | { error: string, }
|
||||||
|
export function login(credentials: {
|
||||||
email: string,
|
email: string,
|
||||||
password: string,
|
password: string,
|
||||||
}
|
}): Promise<LoginResponse> {
|
||||||
export type LoginResponse =
|
|
||||||
{
|
|
||||||
token: string,
|
|
||||||
} |
|
|
||||||
{
|
|
||||||
error: string,
|
|
||||||
}
|
|
||||||
export function login(credentials: LoginCredentials): Promise<LoginResponse> {
|
|
||||||
return asJson(sendRequest('/auth/login', {
|
return asJson(sendRequest('/auth/login', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
@ -40,4 +33,19 @@ export function login(credentials: LoginCredentials): Promise<LoginResponse> {
|
||||||
},
|
},
|
||||||
body: JSON.stringify(credentials),
|
body: JSON.stringify(credentials),
|
||||||
}))
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RegisterResponse = { token: string, } | { error: string, }
|
||||||
|
export function register(credentials: {
|
||||||
|
name: string,
|
||||||
|
email: string,
|
||||||
|
password: string,
|
||||||
|
}): Promise<RegisterResponse> {
|
||||||
|
return asJson(sendRequest('/auth/register', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify(credentials),
|
||||||
|
}))
|
||||||
}
|
}
|
19
identity-web/src/lib/stores.ts
Normal file
19
identity-web/src/lib/stores.ts
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import { writable } from "svelte/store";
|
||||||
|
import type { Credentials } from "./api";
|
||||||
|
|
||||||
|
const CREDENTIALS_KEY = 'v0:credentials'
|
||||||
|
|
||||||
|
export const credentials = writable<Credentials | null>()
|
||||||
|
credentials.subscribe((value) => {
|
||||||
|
if (value != null) {
|
||||||
|
localStorage.setItem(CREDENTIALS_KEY, JSON.stringify(value))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
export function initializeStores() {
|
||||||
|
let rawCredentials = localStorage.getItem(CREDENTIALS_KEY)
|
||||||
|
if (rawCredentials != null && rawCredentials.length > 0) {
|
||||||
|
try { credentials.set(JSON.parse(rawCredentials)) }
|
||||||
|
catch (e) { localStorage.removeItem(CREDENTIALS_KEY) }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +1,31 @@
|
||||||
<script>
|
<script>
|
||||||
|
import { credentials, initializeStores } from "$lib/stores";
|
||||||
import "../app.css";
|
import "../app.css";
|
||||||
|
|
||||||
|
initializeStores()
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="py-3.5 flex text-white bg-violet-800 justify-center">
|
<div class="py-3.5 flex text-white bg-violet-800 justify-center">
|
||||||
<nav class="w-[60%] flex justify-between items-center">
|
<nav class="w-[60%] flex justify-between items-center">
|
||||||
<h1 class="font-serif text-3xl"><a href="/">Identity</a></h1>
|
<h1 class="font-serif text-3xl">
|
||||||
|
{#if $credentials == null}
|
||||||
|
<a href="/">Identity</a>
|
||||||
|
{:else}
|
||||||
|
<a href="/dashboard">Identity</a>
|
||||||
|
{/if}
|
||||||
|
</h1>
|
||||||
<div class="text-xl">
|
<div class="text-xl">
|
||||||
|
{#if $credentials == null}
|
||||||
| <div class="px-3 inline-block"><a href="/">Home</a></div>
|
| <div class="px-3 inline-block"><a href="/">Home</a></div>
|
||||||
| <div class="px-3 inline-block"><a href="https://support.identity.net/">Support</a></div>
|
| <div class="px-3 inline-block"><a href="https://support.identity.net/">Support</a></div>
|
||||||
| <div class="px-3 inline-block"><a href="/auth/register">Join</a></div>
|
| <div class="px-3 inline-block"><a href="/auth/register">Join</a></div>
|
||||||
|
|
|
|
||||||
|
{:else}
|
||||||
|
| <div class="px-3 inline-block"><a href="/dashboard">Dashboard</a></div>
|
||||||
|
| <div class="px-3 inline-block"><a href="/auth/account">Account</a></div>
|
||||||
|
| <div class="px-3 inline-block"><a href="https://support.identity.net/">Support</a></div>
|
||||||
|
|
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|
2
identity-web/src/routes/+layout.ts
Normal file
2
identity-web/src/routes/+layout.ts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
// FIXME: Update code to support SSR
|
||||||
|
export const ssr = false;
|
1
identity-web/src/routes/auth/account/+page.svelte
Normal file
1
identity-web/src/routes/auth/account/+page.svelte
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<h1>Account management</h1>
|
|
@ -1 +1,73 @@
|
||||||
<h1>Login</h1>
|
<script lang="ts">
|
||||||
|
import { login, type Credentials } from "$lib/api";
|
||||||
|
import { credentials } from "$lib/stores";
|
||||||
|
import { createForm } from "felte";
|
||||||
|
|
||||||
|
let submitError: string | undefined
|
||||||
|
|
||||||
|
// FIXME: This is a badly done hack
|
||||||
|
credentials.subscribe((v) => v != null && (setTimeout(() => window.location.pathname = '/dashboard', 200)))
|
||||||
|
|
||||||
|
const { form, errors } = createForm({
|
||||||
|
onSubmit: (values) => {
|
||||||
|
return login(values)
|
||||||
|
},
|
||||||
|
onSuccess: (response) => {
|
||||||
|
// @ts-ignore - FIXME: How to tell the checker that this is right
|
||||||
|
if (response == null || ('error' in response && (typeof response['error'] !== "string" || !['invalid credentials'].includes(response['error'])))) {
|
||||||
|
submitError = 'Something failed. Try again later.'
|
||||||
|
}
|
||||||
|
// @ts-ignore - FIXME: How to tell the checker that this is right
|
||||||
|
else if ('error' in response) {
|
||||||
|
// @ts-ignore - response is not null and the type of its key 'error' is a string
|
||||||
|
submitError = 'Check your credentials and try again.'
|
||||||
|
} else {
|
||||||
|
credentials.set(response as Credentials)
|
||||||
|
// FIXME: This is a badly done hack
|
||||||
|
setTimeout(() => window.location.pathname = '/dashboard', 200)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
validate: (values) => {
|
||||||
|
const errors = {}
|
||||||
|
if (values.email == null || values.email.length === 0) {
|
||||||
|
errors.email = 'Must not be empty'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (values.password == null || values.password.length === 0) {
|
||||||
|
errors.password = 'Must not be empty'
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="mt-3.5 justify-center flex">
|
||||||
|
<div class="w-[25%]">
|
||||||
|
<h1 class="text-2xl pb-3.5">Log in</h1>
|
||||||
|
<form use:form>
|
||||||
|
<div class="mb-5">
|
||||||
|
<label for="register__email" class="block mb-2 text-sm font-medium text-gray-900">Your e-mail</label>
|
||||||
|
<input id="register__email" type="text" name="email" placeholder="jane@identity.net" class="bg-gray-50 border border-gray-300 text-greay-900 text-sm rounded-lg focus:ring-violet-500 focus:border-violet-500 block w-full p-2.5">
|
||||||
|
{#if $errors.email != null}
|
||||||
|
<p class="mt-2 text-sm text-red-600"><span class="font-medium">{$errors.email[0]}</span></p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
<div class="mb-5">
|
||||||
|
<label for="register__password" class="block mb-2 text-sm font-medium text-gray-900">Your password</label>
|
||||||
|
<input id="register__password" type="password" name="password" class="bg-gray-50 border border-gray-300 text-greay-900 text-sm rounded-lg focus:ring-violet-500 focus:border-violet-500 block w-full p-2.5">
|
||||||
|
{#if $errors.password != null}
|
||||||
|
<p class="mt-2 text-sm text-red-600"><span class="font-medium">{$errors.password[0]}</span></p>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="text-white bg-violet-700 hover:bg-violet-800 focus:ring-4 focust:outline-none focus:ring-violet-300 font-medium rounded-lg w-full px-5 py-2.5 text-center">Log in</button>
|
||||||
|
{#if submitError != null && submitError.length > 0}
|
||||||
|
<p class="mt-3.5 text-sm text-red-600"><span class="font-medium">{submitError}</span></p>
|
||||||
|
{/if}
|
||||||
|
<div class="flex pt-3.5 w-full justify-between">
|
||||||
|
<a href="/auth/register" class="text-center font-medium text-blue-600 hover:underline">Create an account</a>
|
||||||
|
<a href="/auth/recovery" class="text-center font-medium text-blue-600 hover:underline">Forgotten password?</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,33 +1,55 @@
|
||||||
<script>
|
<script lang="ts">
|
||||||
|
import { register, type Credentials } from "$lib/api";
|
||||||
|
import { credentials } from "$lib/stores";
|
||||||
import { createForm } from "felte";
|
import { createForm } from "felte";
|
||||||
|
|
||||||
|
let submitError: string | undefined
|
||||||
|
|
||||||
|
// FIXME: This is a badly done hack
|
||||||
|
credentials.subscribe((v) => v != null && (setTimeout(() => window.location.pathname = '/dashboard', 200)))
|
||||||
|
|
||||||
const { form, errors } = createForm({
|
const { form, errors } = createForm({
|
||||||
onSubmit: (values) => {
|
onSubmit: (values) => {
|
||||||
console.log(values)
|
return register(values)
|
||||||
|
},
|
||||||
|
onSuccess: (response) => {
|
||||||
|
// @ts-ignore - FIXME: How to tell the checker that this is right
|
||||||
|
if (response == null || ('error' in response && (typeof response['error'] !== "string" || !['invalid data'].includes(response['error'])))) {
|
||||||
|
submitError = 'Something failed. Try again later.'
|
||||||
|
}
|
||||||
|
// @ts-ignore - FIXME: How to tell the checker that this is right
|
||||||
|
else if ('error' in response) {
|
||||||
|
// @ts-ignore - response is not null and the type of its key 'error' is a string
|
||||||
|
submitError = 'Check your credentials and try again, this user may already exist.'
|
||||||
|
} else {
|
||||||
|
credentials.set(response as Credentials)
|
||||||
|
// FIXME: This is a badly done hack
|
||||||
|
setTimeout(() => window.location.pathname = '/dashboard', 200)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
validate: (values) => {
|
validate: (values) => {
|
||||||
const errors = {}
|
const errors = {}
|
||||||
|
if (values.name == null || values.name.length === 0) {
|
||||||
|
errors.name = 'Must not be empty'
|
||||||
|
}
|
||||||
|
|
||||||
if (values.email == null || !/^[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+/.test(values.email)) {
|
if (values.email == null || !/^[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+/.test(values.email)) {
|
||||||
errors.email = 'Must be a valid e-mail'
|
errors.email = 'Must be a valid e-mail'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (values.password == null) {
|
if (values.password == null || values.password.length === 0) {
|
||||||
errors.password = 'Must not be empty'
|
errors.password = 'Must not be empty'
|
||||||
}
|
} else if (values.password != null && values.password.length < 12) {
|
||||||
|
|
||||||
if (values.password != null && values.password.length < 12) {
|
|
||||||
errors.password = 'Must be over 12 characters'
|
errors.password = 'Must be over 12 characters'
|
||||||
}
|
}
|
||||||
|
|
||||||
return errors
|
return errors
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
$: console.log($errors)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="justify-center flex">
|
<div class="mt-3.5 justify-center flex">
|
||||||
<div class="w-[30%]">
|
<div class="w-[25%]">
|
||||||
<h1 class="text-2xl pb-3.5">Register</h1>
|
<h1 class="text-2xl pb-3.5">Register</h1>
|
||||||
<form use:form>
|
<form use:form>
|
||||||
<div class="mb-5">
|
<div class="mb-5">
|
||||||
|
@ -52,6 +74,10 @@
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="text-white bg-violet-700 hover:bg-violet-800 focus:ring-4 focust:outline-none focus:ring-violet-300 font-medium rounded-lg w-full px-5 py-2.5 text-center">Create user</button>
|
<button type="submit" class="text-white bg-violet-700 hover:bg-violet-800 focus:ring-4 focust:outline-none focus:ring-violet-300 font-medium rounded-lg w-full px-5 py-2.5 text-center">Create user</button>
|
||||||
|
{#if submitError != null && submitError.length > 0}
|
||||||
|
<p class="mt-3.5 text-sm text-red-600"><span class="font-medium">{submitError}</span></p>
|
||||||
|
{/if}
|
||||||
|
<a href="/auth/login" class="block w-full text-center pt-3.5 font-medium text-blue-600 hover:underline">Already have an account?</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
1
identity-web/src/routes/dashboard/+page.svelte
Normal file
1
identity-web/src/routes/dashboard/+page.svelte
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<h1>Dashboard</h1>
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue