プレイグラウンド、サンドボックス、使い捨てスクリプト置き場
0

Configure Feed

Select the types of activity you want to include in your feed.

create fastify-validation

Kohei Watanabe (Sep 11, 2023, 5:44 PM +0900) 966a3a2e 48406e4d

+423
+5
fastify-validation/package.json
··· 1 + { 2 + "devDependencies": { 3 + "fastify": "^4.22.2" 4 + } 5 + }
+393
fastify-validation/pnpm-lock.yaml
··· 1 + lockfileVersion: '6.0' 2 + 3 + devDependencies: 4 + fastify: 5 + specifier: ^4.22.2 6 + version: 4.22.2 7 + 8 + packages: 9 + 10 + /@fastify/ajv-compiler@3.5.0: 11 + resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} 12 + dependencies: 13 + ajv: 8.12.0 14 + ajv-formats: 2.1.1(ajv@8.12.0) 15 + fast-uri: 2.2.0 16 + dev: true 17 + 18 + /@fastify/deepmerge@1.3.0: 19 + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} 20 + dev: true 21 + 22 + /@fastify/error@3.3.0: 23 + resolution: {integrity: sha512-dj7vjIn1Ar8sVXj2yAXiMNCJDmS9MQ9XMlIecX2dIzzhjSHCyKo4DdXjXMs7wKW2kj6yvVRSpuQjOZ3YLrh56w==} 24 + dev: true 25 + 26 + /@fastify/fast-json-stringify-compiler@4.3.0: 27 + resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} 28 + dependencies: 29 + fast-json-stringify: 5.8.0 30 + dev: true 31 + 32 + /abort-controller@3.0.0: 33 + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 34 + engines: {node: '>=6.5'} 35 + dependencies: 36 + event-target-shim: 5.0.1 37 + dev: true 38 + 39 + /abstract-logging@2.0.1: 40 + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} 41 + dev: true 42 + 43 + /ajv-formats@2.1.1(ajv@8.12.0): 44 + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 45 + peerDependencies: 46 + ajv: ^8.0.0 47 + peerDependenciesMeta: 48 + ajv: 49 + optional: true 50 + dependencies: 51 + ajv: 8.12.0 52 + dev: true 53 + 54 + /ajv@8.12.0: 55 + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 56 + dependencies: 57 + fast-deep-equal: 3.1.3 58 + json-schema-traverse: 1.0.0 59 + require-from-string: 2.0.2 60 + uri-js: 4.4.1 61 + dev: true 62 + 63 + /archy@1.0.0: 64 + resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} 65 + dev: true 66 + 67 + /atomic-sleep@1.0.0: 68 + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 69 + engines: {node: '>=8.0.0'} 70 + dev: true 71 + 72 + /avvio@8.2.1: 73 + resolution: {integrity: sha512-TAlMYvOuwGyLK3PfBb5WKBXZmXz2fVCgv23d6zZFdle/q3gPjmxBaeuC0pY0Dzs5PWMSgfqqEZkrye19GlDTgw==} 74 + dependencies: 75 + archy: 1.0.0 76 + debug: 4.3.4 77 + fastq: 1.15.0 78 + transitivePeerDependencies: 79 + - supports-color 80 + dev: true 81 + 82 + /base64-js@1.5.1: 83 + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 84 + dev: true 85 + 86 + /buffer@6.0.3: 87 + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 88 + dependencies: 89 + base64-js: 1.5.1 90 + ieee754: 1.2.1 91 + dev: true 92 + 93 + /cookie@0.5.0: 94 + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 95 + engines: {node: '>= 0.6'} 96 + dev: true 97 + 98 + /debug@4.3.4: 99 + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 100 + engines: {node: '>=6.0'} 101 + peerDependencies: 102 + supports-color: '*' 103 + peerDependenciesMeta: 104 + supports-color: 105 + optional: true 106 + dependencies: 107 + ms: 2.1.2 108 + dev: true 109 + 110 + /event-target-shim@5.0.1: 111 + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 112 + engines: {node: '>=6'} 113 + dev: true 114 + 115 + /events@3.3.0: 116 + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 117 + engines: {node: '>=0.8.x'} 118 + dev: true 119 + 120 + /fast-content-type-parse@1.0.0: 121 + resolution: {integrity: sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==} 122 + dev: true 123 + 124 + /fast-decode-uri-component@1.0.1: 125 + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} 126 + dev: true 127 + 128 + /fast-deep-equal@3.1.3: 129 + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 130 + dev: true 131 + 132 + /fast-json-stringify@5.8.0: 133 + resolution: {integrity: sha512-VVwK8CFMSALIvt14U8AvrSzQAwN/0vaVRiFFUVlpnXSnDGrSkOAO5MtzyN8oQNjLd5AqTW5OZRgyjoNuAuR3jQ==} 134 + dependencies: 135 + '@fastify/deepmerge': 1.3.0 136 + ajv: 8.12.0 137 + ajv-formats: 2.1.1(ajv@8.12.0) 138 + fast-deep-equal: 3.1.3 139 + fast-uri: 2.2.0 140 + rfdc: 1.3.0 141 + dev: true 142 + 143 + /fast-querystring@1.1.2: 144 + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} 145 + dependencies: 146 + fast-decode-uri-component: 1.0.1 147 + dev: true 148 + 149 + /fast-redact@3.3.0: 150 + resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} 151 + engines: {node: '>=6'} 152 + dev: true 153 + 154 + /fast-uri@2.2.0: 155 + resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} 156 + dev: true 157 + 158 + /fastify@4.22.2: 159 + resolution: {integrity: sha512-rK8mF/1mZJHH6H/L22OhmilTgrp5XMkk3RHcSy03LC+TJ6+wLhbq+4U62bjns15VzIbBNgxTqAForBqtGAa0NQ==} 160 + dependencies: 161 + '@fastify/ajv-compiler': 3.5.0 162 + '@fastify/error': 3.3.0 163 + '@fastify/fast-json-stringify-compiler': 4.3.0 164 + abstract-logging: 2.0.1 165 + avvio: 8.2.1 166 + fast-content-type-parse: 1.0.0 167 + fast-json-stringify: 5.8.0 168 + find-my-way: 7.6.2 169 + light-my-request: 5.10.0 170 + pino: 8.15.1 171 + process-warning: 2.2.0 172 + proxy-addr: 2.0.7 173 + rfdc: 1.3.0 174 + secure-json-parse: 2.7.0 175 + semver: 7.5.4 176 + tiny-lru: 11.0.1 177 + transitivePeerDependencies: 178 + - supports-color 179 + dev: true 180 + 181 + /fastq@1.15.0: 182 + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 183 + dependencies: 184 + reusify: 1.0.4 185 + dev: true 186 + 187 + /find-my-way@7.6.2: 188 + resolution: {integrity: sha512-0OjHn1b1nCX3eVbm9ByeEHiscPYiHLfhei1wOUU9qffQkk98wE0Lo8VrVYfSGMgnSnDh86DxedduAnBf4nwUEw==} 189 + engines: {node: '>=14'} 190 + dependencies: 191 + fast-deep-equal: 3.1.3 192 + fast-querystring: 1.1.2 193 + safe-regex2: 2.0.0 194 + dev: true 195 + 196 + /forwarded@0.2.0: 197 + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 198 + engines: {node: '>= 0.6'} 199 + dev: true 200 + 201 + /ieee754@1.2.1: 202 + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 203 + dev: true 204 + 205 + /ipaddr.js@1.9.1: 206 + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 207 + engines: {node: '>= 0.10'} 208 + dev: true 209 + 210 + /json-schema-traverse@1.0.0: 211 + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 212 + dev: true 213 + 214 + /light-my-request@5.10.0: 215 + resolution: {integrity: sha512-ZU2D9GmAcOUculTTdH9/zryej6n8TzT+fNGdNtm6SDp5MMMpHrJJkvAdE3c6d8d2chE9i+a//dS9CWZtisknqA==} 216 + dependencies: 217 + cookie: 0.5.0 218 + process-warning: 2.2.0 219 + set-cookie-parser: 2.6.0 220 + dev: true 221 + 222 + /lru-cache@6.0.0: 223 + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 224 + engines: {node: '>=10'} 225 + dependencies: 226 + yallist: 4.0.0 227 + dev: true 228 + 229 + /ms@2.1.2: 230 + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 231 + dev: true 232 + 233 + /on-exit-leak-free@2.1.0: 234 + resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} 235 + dev: true 236 + 237 + /pino-abstract-transport@1.1.0: 238 + resolution: {integrity: sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==} 239 + dependencies: 240 + readable-stream: 4.4.2 241 + split2: 4.2.0 242 + dev: true 243 + 244 + /pino-std-serializers@6.2.2: 245 + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 246 + dev: true 247 + 248 + /pino@8.15.1: 249 + resolution: {integrity: sha512-Cp4QzUQrvWCRJaQ8Lzv0mJzXVk4z2jlq8JNKMGaixC2Pz5L4l2p95TkuRvYbrEbe85NQsDKrAd4zalf7Ml6WiA==} 250 + hasBin: true 251 + dependencies: 252 + atomic-sleep: 1.0.0 253 + fast-redact: 3.3.0 254 + on-exit-leak-free: 2.1.0 255 + pino-abstract-transport: 1.1.0 256 + pino-std-serializers: 6.2.2 257 + process-warning: 2.2.0 258 + quick-format-unescaped: 4.0.4 259 + real-require: 0.2.0 260 + safe-stable-stringify: 2.4.3 261 + sonic-boom: 3.3.0 262 + thread-stream: 2.4.0 263 + dev: true 264 + 265 + /process-warning@2.2.0: 266 + resolution: {integrity: sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==} 267 + dev: true 268 + 269 + /process@0.11.10: 270 + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 271 + engines: {node: '>= 0.6.0'} 272 + dev: true 273 + 274 + /proxy-addr@2.0.7: 275 + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 276 + engines: {node: '>= 0.10'} 277 + dependencies: 278 + forwarded: 0.2.0 279 + ipaddr.js: 1.9.1 280 + dev: true 281 + 282 + /punycode@2.3.0: 283 + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 284 + engines: {node: '>=6'} 285 + dev: true 286 + 287 + /quick-format-unescaped@4.0.4: 288 + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 289 + dev: true 290 + 291 + /readable-stream@4.4.2: 292 + resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} 293 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 294 + dependencies: 295 + abort-controller: 3.0.0 296 + buffer: 6.0.3 297 + events: 3.3.0 298 + process: 0.11.10 299 + string_decoder: 1.3.0 300 + dev: true 301 + 302 + /real-require@0.2.0: 303 + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 304 + engines: {node: '>= 12.13.0'} 305 + dev: true 306 + 307 + /require-from-string@2.0.2: 308 + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 309 + engines: {node: '>=0.10.0'} 310 + dev: true 311 + 312 + /ret@0.2.2: 313 + resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} 314 + engines: {node: '>=4'} 315 + dev: true 316 + 317 + /reusify@1.0.4: 318 + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 319 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 320 + dev: true 321 + 322 + /rfdc@1.3.0: 323 + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} 324 + dev: true 325 + 326 + /safe-buffer@5.2.1: 327 + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 328 + dev: true 329 + 330 + /safe-regex2@2.0.0: 331 + resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} 332 + dependencies: 333 + ret: 0.2.2 334 + dev: true 335 + 336 + /safe-stable-stringify@2.4.3: 337 + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} 338 + engines: {node: '>=10'} 339 + dev: true 340 + 341 + /secure-json-parse@2.7.0: 342 + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 343 + dev: true 344 + 345 + /semver@7.5.4: 346 + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 347 + engines: {node: '>=10'} 348 + hasBin: true 349 + dependencies: 350 + lru-cache: 6.0.0 351 + dev: true 352 + 353 + /set-cookie-parser@2.6.0: 354 + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 355 + dev: true 356 + 357 + /sonic-boom@3.3.0: 358 + resolution: {integrity: sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==} 359 + dependencies: 360 + atomic-sleep: 1.0.0 361 + dev: true 362 + 363 + /split2@4.2.0: 364 + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 365 + engines: {node: '>= 10.x'} 366 + dev: true 367 + 368 + /string_decoder@1.3.0: 369 + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 370 + dependencies: 371 + safe-buffer: 5.2.1 372 + dev: true 373 + 374 + /thread-stream@2.4.0: 375 + resolution: {integrity: sha512-xZYtOtmnA63zj04Q+F9bdEay5r47bvpo1CaNqsKi7TpoJHcotUez8Fkfo2RJWpW91lnnaApdpRbVwCWsy+ifcw==} 376 + dependencies: 377 + real-require: 0.2.0 378 + dev: true 379 + 380 + /tiny-lru@11.0.1: 381 + resolution: {integrity: sha512-iNgFugVuQgBKrqeO/mpiTTgmBsTP0WL6yeuLfLs/Ctf0pI/ixGqIRm8sDCwMcXGe9WWvt2sGXI5mNqZbValmJg==} 382 + engines: {node: '>=12'} 383 + dev: true 384 + 385 + /uri-js@4.4.1: 386 + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 387 + dependencies: 388 + punycode: 2.3.0 389 + dev: true 390 + 391 + /yallist@4.0.0: 392 + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 393 + dev: true
+25
fastify-validation/server.mjs
··· 1 + import fastify from "fastify"; 2 + 3 + const server = fastify({ logger: true }); 4 + 5 + server.get("/", { 6 + schema: { 7 + querystring: { 8 + type: "object", 9 + properties: { dateTime: { type: "string", format: "date-time" } }, 10 + required: ["dateTime"], 11 + }, 12 + }, 13 + handler() { 14 + return "ok"; 15 + }, 16 + }); 17 + 18 + // valid 19 + await server.inject("/?dateTime=2021-09-10T15:30:00Z"); 20 + 21 + // valid 22 + await server.inject("/?dateTime=2021-09-10T15:30:00"); 23 + 24 + // invalid: querystring/dateTime must match format "date-time" 25 + await server.inject("/?dateTime=2021-09-10");
package.json fastify-http-errors-enhanced/package.json
pnpm-lock.yaml fastify-http-errors-enhanced/pnpm-lock.yaml