├── .gitignore ├── package.json ├── bonus └── main.ts ├── 1-basics └── main.ts ├── README.md ├── 2-register └── main.ts ├── 3-decorators └── main.ts ├── 4-hooks └── main.ts ├── 5-validation └── main.ts └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "@fastify/mongodb": "^6.2.0", 4 | "fastify": "^4.12.0" 5 | }, 6 | "scripts": { 7 | "1": "tsx watch 1-basics/main.ts", 8 | "2": "tsx watch 2-register/main.ts", 9 | "3": "tsx watch 3-decorators/main.ts", 10 | "4": "tsx watch 4-hooks/main.ts", 11 | "5": "tsx watch 5-validation/main.ts", 12 | "bonus": "tsx watch bonus/main.ts" 13 | }, 14 | "devDependencies": { 15 | "@types/node": "^18.11.19", 16 | "pino-pretty": "^9.1.1", 17 | "tsx": "^3.12.2", 18 | "typescript": "^4.9.5" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /bonus/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify from "fastify"; 2 | 3 | function buildServer() { 4 | const fastify = Fastify({ 5 | logger: { 6 | transport: { 7 | target: "pino-pretty", 8 | }, 9 | }, 10 | }); 11 | 12 | fastify.get("/", () => "Welcome"); 13 | 14 | return fastify; 15 | } 16 | 17 | async function main() { 18 | const fastify = buildServer(); 19 | 20 | fastify.listen({ 21 | port: 3000, 22 | }); 23 | } 24 | 25 | async function test() { 26 | const server = buildServer(); 27 | 28 | const response = await server.inject({ 29 | method: "GET", 30 | url: "/", 31 | }); 32 | 33 | console.log("status", response.statusCode); 34 | 35 | console.log("body", response.body); 36 | } 37 | 38 | test(); 39 | -------------------------------------------------------------------------------- /1-basics/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify, { FastifyReply, FastifyRequest } from "fastify"; 2 | 3 | const fastify = Fastify({ 4 | logger: { 5 | transport: { 6 | target: "pino-pretty", 7 | }, 8 | }, 9 | }); 10 | 11 | fastify.post("/api/users", { 12 | handler: async ( 13 | request: FastifyRequest<{ 14 | Body: { 15 | name: string; 16 | age: number; 17 | }; 18 | }>, 19 | reply: FastifyReply 20 | ) => { 21 | const body = request.body; 22 | 23 | console.log({ body }); 24 | 25 | return reply.code(201).send(body); 26 | }, 27 | }); 28 | 29 | async function main() { 30 | await fastify.listen({ 31 | port: 3000, 32 | host: "0.0.0.0", 33 | }); 34 | } 35 | 36 | ["SIGINT", "SIGTERM"].forEach((signal) => { 37 | process.on(signal, async () => { 38 | await fastify.close(); 39 | 40 | process.exit(0); 41 | }); 42 | }); 43 | 44 | main(); 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Fastify 2 | 3 | ## What is Fastify? 4 | * Web framework for Node.js 5 | * Build to be performant & secure 6 | * Inspired by Express & Hapi 7 | 8 | ## Why use Fastify? 9 | * Full async/await support 10 | * Helpful and flexibly TypeScript support 11 | * Rich and high-quality [ecosystem](https://www.fastify.io/ecosystem/) 12 | * Secure 13 | * It's fast 14 | 15 | Note: Will be using TypeScript, ESM & async/await 16 | Fastify does support JS, CJS and callbacks 17 | 18 | ## What are we covering? 19 | ### The basics 20 | * Build an instance of Fastify 21 | * Start the server 22 | * Register a route 23 | * Request & reply 24 | * Graceful shutdown 25 | 26 | ### Plugins & register 27 | https://www.fastify.io/docs/latest/Reference/Plugins/ 28 | * Register routes as plugins 29 | * Register external plugins 30 | * Register with options 31 | * Call order 32 | 33 | ### Decorators 34 | https://www.fastify.io/docs/latest/Reference/Decorators/ 35 | * Modify the request object - addHook 36 | * Add functionality to the Fastify instance - decorate 37 | 38 | ## Request hooks 39 | https://www.fastify.io/docs/latest/Reference/Hooks 40 | * Lifecycle hooks 41 | 42 | ## Validation 43 | * Validate requests 44 | * Validate responses 45 | 46 | ## Bonus -------------------------------------------------------------------------------- /2-register/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify, { 2 | FastifyInstance, 3 | FastifyReply, 4 | FastifyRequest, 5 | } from "fastify"; 6 | import fastifyMongo from "@fastify/mongodb"; 7 | 8 | const fastify = Fastify({ 9 | logger: { 10 | transport: { 11 | target: "pino-pretty", 12 | }, 13 | }, 14 | }); 15 | 16 | async function userRoutes(fastify: FastifyInstance) { 17 | fastify.post("/", { 18 | handler: async ( 19 | request: FastifyRequest<{ 20 | Body: { 21 | name: string; 22 | age: number; 23 | }; 24 | }>, 25 | reply: FastifyReply 26 | ) => { 27 | const body = request.body; 28 | 29 | console.log({ body }); 30 | 31 | return reply.code(201).send(body); 32 | }, 33 | }); 34 | 35 | fastify.log.info("User routes registered"); 36 | } 37 | 38 | async function dbConnector(fastify: FastifyInstance, options) { 39 | fastify.register(fastifyMongo, { 40 | url: "mongodb://localhost:27017/fastify", 41 | }); 42 | 43 | fastify.log.info("Connected to database", options); 44 | } 45 | 46 | fastify.register(dbConnector); 47 | 48 | fastify.register(userRoutes, { prefix: "/api/users" }); 49 | 50 | async function main() { 51 | await fastify.listen({ 52 | port: 3000, 53 | host: "0.0.0.0", 54 | }); 55 | } 56 | 57 | ["SIGINT", "SIGTERM"].forEach((signal) => { 58 | process.on(signal, async () => { 59 | await fastify.close(); 60 | 61 | process.exit(0); 62 | }); 63 | }); 64 | 65 | main(); 66 | -------------------------------------------------------------------------------- /3-decorators/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify, { 2 | FastifyInstance, 3 | FastifyReply, 4 | FastifyRequest, 5 | } from "fastify"; 6 | import fastifyMongo from "@fastify/mongodb"; 7 | 8 | const fastify = Fastify({ 9 | logger: { 10 | transport: { 11 | target: "pino-pretty", 12 | }, 13 | }, 14 | }); 15 | 16 | async function userRoutes(fastify: FastifyInstance) { 17 | fastify.get("/", { 18 | handler: async ( 19 | request: FastifyRequest<{ 20 | Body: { 21 | name: string; 22 | age: number; 23 | }; 24 | }>, 25 | reply: FastifyReply 26 | ) => { 27 | const body = request.body; 28 | 29 | const jwt = fastify.signJwt(); 30 | 31 | const verified = fastify.verifyJwt(); 32 | 33 | return reply.code(201).send({ jwt, verified }); 34 | }, 35 | }); 36 | 37 | fastify.log.info("User routes registered"); 38 | } 39 | 40 | async function dbConnector(fastify: FastifyInstance, options) { 41 | fastify.register(fastifyMongo, { 42 | url: "mongodb://localhost:27017/fastify", 43 | }); 44 | 45 | fastify.log.info("Connected to database", options); 46 | } 47 | 48 | declare module "fastify" { 49 | export interface FastifyRequest { 50 | user: { 51 | name: string; 52 | }; 53 | } 54 | export interface FastifyInstance { 55 | signJwt: () => string; 56 | verifyJwt: () => { 57 | name: string; 58 | }; 59 | } 60 | } 61 | 62 | fastify.decorateRequest("user", null); 63 | 64 | fastify.addHook( 65 | "preHandler", 66 | async (request: FastifyRequest, reply: FastifyReply) => { 67 | request.user = { 68 | name: "Bob Jones", 69 | }; 70 | } 71 | ); 72 | 73 | fastify.decorate("signJwt", () => { 74 | return "Signed JWT"; 75 | }); 76 | 77 | fastify.decorate("verifyJwt", () => { 78 | return { 79 | name: "Tom", 80 | }; 81 | }); 82 | 83 | fastify.register(dbConnector); 84 | 85 | fastify.register(userRoutes); 86 | 87 | async function main() { 88 | await fastify.listen({ 89 | port: 3000, 90 | host: "0.0.0.0", 91 | }); 92 | } 93 | 94 | ["SIGINT", "SIGTERM"].forEach((signal) => { 95 | process.on(signal, async () => { 96 | await fastify.close(); 97 | 98 | process.exit(0); 99 | }); 100 | }); 101 | 102 | main(); 103 | -------------------------------------------------------------------------------- /4-hooks/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify, { 2 | FastifyInstance, 3 | FastifyReply, 4 | FastifyRequest, 5 | } from "fastify"; 6 | import fastifyMongo from "@fastify/mongodb"; 7 | 8 | const fastify = Fastify({ 9 | logger: { 10 | transport: { 11 | target: "pino-pretty", 12 | }, 13 | }, 14 | }); 15 | 16 | async function userRoutes(fastify: FastifyInstance) { 17 | fastify.addHook("onRequest", async () => { 18 | fastify.log.info("Got a request"); 19 | }); 20 | 21 | fastify.addHook("onResponse", async (request, reply: FastifyReply) => { 22 | fastify.log.info(`Responding: ${reply.getResponseTime()}`); 23 | }); 24 | 25 | fastify.get("/", { 26 | handler: async ( 27 | request: FastifyRequest<{ 28 | Body: { 29 | name: string; 30 | age: number; 31 | }; 32 | }>, 33 | reply: FastifyReply 34 | ) => { 35 | const body = request.body; 36 | 37 | const jwt = fastify.signJwt(); 38 | 39 | const verified = fastify.verifyJwt(); 40 | 41 | return reply.code(201).send({ jwt, verified }); 42 | }, 43 | }); 44 | 45 | fastify.log.info("User routes registered"); 46 | } 47 | 48 | fastify.get("/err", () => { 49 | return { message: "hello" }; 50 | }); 51 | 52 | async function dbConnector(fastify: FastifyInstance, options) { 53 | fastify.register(fastifyMongo, { 54 | url: "mongodb://localhost:27017/fastify", 55 | }); 56 | 57 | fastify.log.info("Connected to database", options); 58 | } 59 | 60 | declare module "fastify" { 61 | export interface FastifyRequest { 62 | user: { 63 | name: string; 64 | }; 65 | } 66 | export interface FastifyInstance { 67 | signJwt: () => string; 68 | verifyJwt: () => { 69 | name: string; 70 | }; 71 | } 72 | } 73 | 74 | fastify.decorateRequest("user", null); 75 | 76 | fastify.addHook( 77 | "preHandler", 78 | async (request: FastifyRequest, reply: FastifyReply) => { 79 | request.user = { 80 | name: "Bob Jones", 81 | }; 82 | } 83 | ); 84 | 85 | fastify.decorate("signJwt", () => { 86 | return "Signed JWT"; 87 | }); 88 | 89 | fastify.decorate("verifyJwt", () => { 90 | return { 91 | name: "Tom", 92 | }; 93 | }); 94 | 95 | fastify.register(dbConnector); 96 | 97 | fastify.register(userRoutes); 98 | 99 | async function main() { 100 | await fastify.listen({ 101 | port: 3000, 102 | host: "0.0.0.0", 103 | }); 104 | } 105 | 106 | [("SIGINT", "SIGTERM")].forEach((signal) => { 107 | process.on(signal, async () => { 108 | await fastify.close(); 109 | 110 | process.exit(0); 111 | }); 112 | }); 113 | 114 | main(); 115 | -------------------------------------------------------------------------------- /5-validation/main.ts: -------------------------------------------------------------------------------- 1 | import Fastify, { 2 | FastifyInstance, 3 | FastifyReply, 4 | FastifyRequest, 5 | } from "fastify"; 6 | import fastifyMongo from "@fastify/mongodb"; 7 | 8 | const fastify = Fastify({ 9 | logger: { 10 | transport: { 11 | target: "pino-pretty", 12 | }, 13 | }, 14 | }); 15 | 16 | async function userRoutes(fastify: FastifyInstance) { 17 | fastify.addSchema({ 18 | $id: "createUseSchema", 19 | type: "object", 20 | required: ["name"], 21 | properties: { 22 | name: { 23 | type: "string", 24 | }, 25 | }, 26 | }); 27 | 28 | fastify.post("/", { 29 | schema: { 30 | body: { $ref: "createUseSchema#" }, 31 | response: { 32 | 201: { 33 | type: "object", 34 | properties: { 35 | name: { type: "string" }, 36 | age: { type: "number" }, 37 | }, 38 | }, 39 | }, 40 | }, 41 | handler: async ( 42 | request: FastifyRequest<{ 43 | Body: { 44 | name: string; 45 | age: number; 46 | }; 47 | }>, 48 | reply: FastifyReply 49 | ) => { 50 | const body = request.body; 51 | 52 | return reply.code(201).send(body); 53 | }, 54 | }); 55 | 56 | fastify.log.info("User routes registered"); 57 | } 58 | 59 | fastify.get("/err", () => { 60 | return { message: "hello" }; 61 | }); 62 | 63 | async function dbConnector(fastify: FastifyInstance, options) { 64 | fastify.register(fastifyMongo, { 65 | url: "mongodb://localhost:27017/fastify", 66 | }); 67 | 68 | fastify.log.info("Connected to database", options); 69 | } 70 | 71 | declare module "fastify" { 72 | export interface FastifyRequest { 73 | user: { 74 | name: string; 75 | }; 76 | } 77 | export interface FastifyInstance { 78 | signJwt: () => string; 79 | verifyJwt: () => { 80 | name: string; 81 | }; 82 | } 83 | } 84 | 85 | fastify.decorateRequest("user", null); 86 | 87 | fastify.addHook( 88 | "preHandler", 89 | async (request: FastifyRequest, reply: FastifyReply) => { 90 | request.user = { 91 | name: "Bob Jones", 92 | }; 93 | } 94 | ); 95 | 96 | fastify.decorate("signJwt", () => { 97 | return "Signed JWT"; 98 | }); 99 | 100 | fastify.decorate("verifyJwt", () => { 101 | return { 102 | name: "Tom", 103 | }; 104 | }); 105 | 106 | fastify.register(dbConnector); 107 | 108 | fastify.register(userRoutes); 109 | 110 | async function main() { 111 | await fastify.listen({ 112 | port: 3000, 113 | host: "0.0.0.0", 114 | }); 115 | } 116 | 117 | ["SIGINT", "SIGTERM"].forEach((signal) => { 118 | process.on(signal, async () => { 119 | await fastify.close(); 120 | 121 | process.exit(0); 122 | }); 123 | }); 124 | 125 | main(); 126 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@fastify/mongodb': ^6.2.0 5 | '@types/node': ^18.11.19 6 | fastify: ^4.12.0 7 | pino-pretty: ^9.1.1 8 | tsx: ^3.12.2 9 | typescript: ^4.9.5 10 | 11 | dependencies: 12 | '@fastify/mongodb': 6.2.0 13 | fastify: 4.12.0 14 | 15 | devDependencies: 16 | '@types/node': 18.11.19 17 | pino-pretty: 9.1.1 18 | tsx: 3.12.2 19 | typescript: 4.9.5 20 | 21 | packages: 22 | 23 | /@aws-crypto/ie11-detection/3.0.0: 24 | resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} 25 | dependencies: 26 | tslib: 1.14.1 27 | dev: false 28 | optional: true 29 | 30 | /@aws-crypto/sha256-browser/3.0.0: 31 | resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} 32 | dependencies: 33 | '@aws-crypto/ie11-detection': 3.0.0 34 | '@aws-crypto/sha256-js': 3.0.0 35 | '@aws-crypto/supports-web-crypto': 3.0.0 36 | '@aws-crypto/util': 3.0.0 37 | '@aws-sdk/types': 3.257.0 38 | '@aws-sdk/util-locate-window': 3.208.0 39 | '@aws-sdk/util-utf8-browser': 3.259.0 40 | tslib: 1.14.1 41 | dev: false 42 | optional: true 43 | 44 | /@aws-crypto/sha256-js/3.0.0: 45 | resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} 46 | dependencies: 47 | '@aws-crypto/util': 3.0.0 48 | '@aws-sdk/types': 3.257.0 49 | tslib: 1.14.1 50 | dev: false 51 | optional: true 52 | 53 | /@aws-crypto/supports-web-crypto/3.0.0: 54 | resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} 55 | dependencies: 56 | tslib: 1.14.1 57 | dev: false 58 | optional: true 59 | 60 | /@aws-crypto/util/3.0.0: 61 | resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} 62 | dependencies: 63 | '@aws-sdk/types': 3.257.0 64 | '@aws-sdk/util-utf8-browser': 3.259.0 65 | tslib: 1.14.1 66 | dev: false 67 | optional: true 68 | 69 | /@aws-sdk/abort-controller/3.257.0: 70 | resolution: {integrity: sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==} 71 | engines: {node: '>=14.0.0'} 72 | dependencies: 73 | '@aws-sdk/types': 3.257.0 74 | tslib: 2.5.0 75 | dev: false 76 | optional: true 77 | 78 | /@aws-sdk/client-cognito-identity/3.264.0: 79 | resolution: {integrity: sha512-afOpX6/xKLKRjkbgzfuy9fxCVP+LXCiirjBxhEtpUbKjVOwvShbQXfCPDlG40s5HF485mmR9t0KADoy0El5WsA==} 80 | engines: {node: '>=14.0.0'} 81 | dependencies: 82 | '@aws-crypto/sha256-browser': 3.0.0 83 | '@aws-crypto/sha256-js': 3.0.0 84 | '@aws-sdk/client-sts': 3.264.0 85 | '@aws-sdk/config-resolver': 3.259.0 86 | '@aws-sdk/credential-provider-node': 3.264.0 87 | '@aws-sdk/fetch-http-handler': 3.257.0 88 | '@aws-sdk/hash-node': 3.257.0 89 | '@aws-sdk/invalid-dependency': 3.257.0 90 | '@aws-sdk/middleware-content-length': 3.257.0 91 | '@aws-sdk/middleware-endpoint': 3.264.0 92 | '@aws-sdk/middleware-host-header': 3.257.0 93 | '@aws-sdk/middleware-logger': 3.257.0 94 | '@aws-sdk/middleware-recursion-detection': 3.257.0 95 | '@aws-sdk/middleware-retry': 3.259.0 96 | '@aws-sdk/middleware-serde': 3.257.0 97 | '@aws-sdk/middleware-signing': 3.257.0 98 | '@aws-sdk/middleware-stack': 3.257.0 99 | '@aws-sdk/middleware-user-agent': 3.257.0 100 | '@aws-sdk/node-config-provider': 3.259.0 101 | '@aws-sdk/node-http-handler': 3.257.0 102 | '@aws-sdk/protocol-http': 3.257.0 103 | '@aws-sdk/smithy-client': 3.261.0 104 | '@aws-sdk/types': 3.257.0 105 | '@aws-sdk/url-parser': 3.257.0 106 | '@aws-sdk/util-base64': 3.208.0 107 | '@aws-sdk/util-body-length-browser': 3.188.0 108 | '@aws-sdk/util-body-length-node': 3.208.0 109 | '@aws-sdk/util-defaults-mode-browser': 3.261.0 110 | '@aws-sdk/util-defaults-mode-node': 3.261.0 111 | '@aws-sdk/util-endpoints': 3.257.0 112 | '@aws-sdk/util-retry': 3.257.0 113 | '@aws-sdk/util-user-agent-browser': 3.257.0 114 | '@aws-sdk/util-user-agent-node': 3.259.0 115 | '@aws-sdk/util-utf8': 3.254.0 116 | tslib: 2.5.0 117 | transitivePeerDependencies: 118 | - aws-crt 119 | dev: false 120 | optional: true 121 | 122 | /@aws-sdk/client-sso-oidc/3.264.0: 123 | resolution: {integrity: sha512-82hGEbfsD4lBGIF1q8o82jTNSgBCcBpfFsvA+ltZf0bh4ChIWOi4vVvg8G+zVQN1mm/Rj8vWYO/D0tNF8OSyWw==} 124 | engines: {node: '>=14.0.0'} 125 | dependencies: 126 | '@aws-crypto/sha256-browser': 3.0.0 127 | '@aws-crypto/sha256-js': 3.0.0 128 | '@aws-sdk/config-resolver': 3.259.0 129 | '@aws-sdk/fetch-http-handler': 3.257.0 130 | '@aws-sdk/hash-node': 3.257.0 131 | '@aws-sdk/invalid-dependency': 3.257.0 132 | '@aws-sdk/middleware-content-length': 3.257.0 133 | '@aws-sdk/middleware-endpoint': 3.264.0 134 | '@aws-sdk/middleware-host-header': 3.257.0 135 | '@aws-sdk/middleware-logger': 3.257.0 136 | '@aws-sdk/middleware-recursion-detection': 3.257.0 137 | '@aws-sdk/middleware-retry': 3.259.0 138 | '@aws-sdk/middleware-serde': 3.257.0 139 | '@aws-sdk/middleware-stack': 3.257.0 140 | '@aws-sdk/middleware-user-agent': 3.257.0 141 | '@aws-sdk/node-config-provider': 3.259.0 142 | '@aws-sdk/node-http-handler': 3.257.0 143 | '@aws-sdk/protocol-http': 3.257.0 144 | '@aws-sdk/smithy-client': 3.261.0 145 | '@aws-sdk/types': 3.257.0 146 | '@aws-sdk/url-parser': 3.257.0 147 | '@aws-sdk/util-base64': 3.208.0 148 | '@aws-sdk/util-body-length-browser': 3.188.0 149 | '@aws-sdk/util-body-length-node': 3.208.0 150 | '@aws-sdk/util-defaults-mode-browser': 3.261.0 151 | '@aws-sdk/util-defaults-mode-node': 3.261.0 152 | '@aws-sdk/util-endpoints': 3.257.0 153 | '@aws-sdk/util-retry': 3.257.0 154 | '@aws-sdk/util-user-agent-browser': 3.257.0 155 | '@aws-sdk/util-user-agent-node': 3.259.0 156 | '@aws-sdk/util-utf8': 3.254.0 157 | tslib: 2.5.0 158 | transitivePeerDependencies: 159 | - aws-crt 160 | dev: false 161 | optional: true 162 | 163 | /@aws-sdk/client-sso/3.264.0: 164 | resolution: {integrity: sha512-p+7sYpRcdv9omnnsPhD/vOFuZ1SpfV62ZgistBK/RDsQg2W9SIWQRW1KPt7gOCQ0nwp4efntw4Sle0LjS7ykxg==} 165 | engines: {node: '>=14.0.0'} 166 | dependencies: 167 | '@aws-crypto/sha256-browser': 3.0.0 168 | '@aws-crypto/sha256-js': 3.0.0 169 | '@aws-sdk/config-resolver': 3.259.0 170 | '@aws-sdk/fetch-http-handler': 3.257.0 171 | '@aws-sdk/hash-node': 3.257.0 172 | '@aws-sdk/invalid-dependency': 3.257.0 173 | '@aws-sdk/middleware-content-length': 3.257.0 174 | '@aws-sdk/middleware-endpoint': 3.264.0 175 | '@aws-sdk/middleware-host-header': 3.257.0 176 | '@aws-sdk/middleware-logger': 3.257.0 177 | '@aws-sdk/middleware-recursion-detection': 3.257.0 178 | '@aws-sdk/middleware-retry': 3.259.0 179 | '@aws-sdk/middleware-serde': 3.257.0 180 | '@aws-sdk/middleware-stack': 3.257.0 181 | '@aws-sdk/middleware-user-agent': 3.257.0 182 | '@aws-sdk/node-config-provider': 3.259.0 183 | '@aws-sdk/node-http-handler': 3.257.0 184 | '@aws-sdk/protocol-http': 3.257.0 185 | '@aws-sdk/smithy-client': 3.261.0 186 | '@aws-sdk/types': 3.257.0 187 | '@aws-sdk/url-parser': 3.257.0 188 | '@aws-sdk/util-base64': 3.208.0 189 | '@aws-sdk/util-body-length-browser': 3.188.0 190 | '@aws-sdk/util-body-length-node': 3.208.0 191 | '@aws-sdk/util-defaults-mode-browser': 3.261.0 192 | '@aws-sdk/util-defaults-mode-node': 3.261.0 193 | '@aws-sdk/util-endpoints': 3.257.0 194 | '@aws-sdk/util-retry': 3.257.0 195 | '@aws-sdk/util-user-agent-browser': 3.257.0 196 | '@aws-sdk/util-user-agent-node': 3.259.0 197 | '@aws-sdk/util-utf8': 3.254.0 198 | tslib: 2.5.0 199 | transitivePeerDependencies: 200 | - aws-crt 201 | dev: false 202 | optional: true 203 | 204 | /@aws-sdk/client-sts/3.264.0: 205 | resolution: {integrity: sha512-sco1jREkDdds4Z3V19Vlu/YpBHSzeEt1KFqOPnbjFw7pSakRNzpyWmLLxOwWjwgGKt6pSF3Aw0ZOMYsAUDc5qQ==} 206 | engines: {node: '>=14.0.0'} 207 | dependencies: 208 | '@aws-crypto/sha256-browser': 3.0.0 209 | '@aws-crypto/sha256-js': 3.0.0 210 | '@aws-sdk/config-resolver': 3.259.0 211 | '@aws-sdk/credential-provider-node': 3.264.0 212 | '@aws-sdk/fetch-http-handler': 3.257.0 213 | '@aws-sdk/hash-node': 3.257.0 214 | '@aws-sdk/invalid-dependency': 3.257.0 215 | '@aws-sdk/middleware-content-length': 3.257.0 216 | '@aws-sdk/middleware-endpoint': 3.264.0 217 | '@aws-sdk/middleware-host-header': 3.257.0 218 | '@aws-sdk/middleware-logger': 3.257.0 219 | '@aws-sdk/middleware-recursion-detection': 3.257.0 220 | '@aws-sdk/middleware-retry': 3.259.0 221 | '@aws-sdk/middleware-sdk-sts': 3.257.0 222 | '@aws-sdk/middleware-serde': 3.257.0 223 | '@aws-sdk/middleware-signing': 3.257.0 224 | '@aws-sdk/middleware-stack': 3.257.0 225 | '@aws-sdk/middleware-user-agent': 3.257.0 226 | '@aws-sdk/node-config-provider': 3.259.0 227 | '@aws-sdk/node-http-handler': 3.257.0 228 | '@aws-sdk/protocol-http': 3.257.0 229 | '@aws-sdk/smithy-client': 3.261.0 230 | '@aws-sdk/types': 3.257.0 231 | '@aws-sdk/url-parser': 3.257.0 232 | '@aws-sdk/util-base64': 3.208.0 233 | '@aws-sdk/util-body-length-browser': 3.188.0 234 | '@aws-sdk/util-body-length-node': 3.208.0 235 | '@aws-sdk/util-defaults-mode-browser': 3.261.0 236 | '@aws-sdk/util-defaults-mode-node': 3.261.0 237 | '@aws-sdk/util-endpoints': 3.257.0 238 | '@aws-sdk/util-retry': 3.257.0 239 | '@aws-sdk/util-user-agent-browser': 3.257.0 240 | '@aws-sdk/util-user-agent-node': 3.259.0 241 | '@aws-sdk/util-utf8': 3.254.0 242 | fast-xml-parser: 4.0.11 243 | tslib: 2.5.0 244 | transitivePeerDependencies: 245 | - aws-crt 246 | dev: false 247 | optional: true 248 | 249 | /@aws-sdk/config-resolver/3.259.0: 250 | resolution: {integrity: sha512-gViMRsc4Ye6+nzJ0OYTZIT8m4glIAdtugN2Sr/t6P2iJW5X0bSL/EcbcHBgsve1lHjeGPeyzVkT7UnyGOZ5Z/A==} 251 | engines: {node: '>=14.0.0'} 252 | dependencies: 253 | '@aws-sdk/signature-v4': 3.257.0 254 | '@aws-sdk/types': 3.257.0 255 | '@aws-sdk/util-config-provider': 3.208.0 256 | '@aws-sdk/util-middleware': 3.257.0 257 | tslib: 2.5.0 258 | dev: false 259 | optional: true 260 | 261 | /@aws-sdk/credential-provider-cognito-identity/3.264.0: 262 | resolution: {integrity: sha512-0L4offTpZJrX4PkoUI5KXPlG3uaofbmew+tgPphKd+ns3tzhLsltPMixS/04J5qXEfwMCHwvDgSpCenKsUo/wg==} 263 | engines: {node: '>=14.0.0'} 264 | dependencies: 265 | '@aws-sdk/client-cognito-identity': 3.264.0 266 | '@aws-sdk/property-provider': 3.257.0 267 | '@aws-sdk/types': 3.257.0 268 | tslib: 2.5.0 269 | transitivePeerDependencies: 270 | - aws-crt 271 | dev: false 272 | optional: true 273 | 274 | /@aws-sdk/credential-provider-env/3.257.0: 275 | resolution: {integrity: sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==} 276 | engines: {node: '>=14.0.0'} 277 | dependencies: 278 | '@aws-sdk/property-provider': 3.257.0 279 | '@aws-sdk/types': 3.257.0 280 | tslib: 2.5.0 281 | dev: false 282 | optional: true 283 | 284 | /@aws-sdk/credential-provider-imds/3.259.0: 285 | resolution: {integrity: sha512-yCxoYWZAaDrCUEWxRfrpB0Mp1cFgJEMYW8T6GIb/+DQ5QLpZmorgaVD/j90QXupqFrR5tlxwuskBIkdD2E9YNg==} 286 | engines: {node: '>=14.0.0'} 287 | dependencies: 288 | '@aws-sdk/node-config-provider': 3.259.0 289 | '@aws-sdk/property-provider': 3.257.0 290 | '@aws-sdk/types': 3.257.0 291 | '@aws-sdk/url-parser': 3.257.0 292 | tslib: 2.5.0 293 | dev: false 294 | optional: true 295 | 296 | /@aws-sdk/credential-provider-ini/3.264.0: 297 | resolution: {integrity: sha512-UU5NNlfn+Go+5PLBzyTH1YE3r/pgykpE4QYFon87sCnEQnQH9xmlRTW1f1cBSQ9kivbFZd2/C2X3qhB3fe2JfA==} 298 | engines: {node: '>=14.0.0'} 299 | dependencies: 300 | '@aws-sdk/credential-provider-env': 3.257.0 301 | '@aws-sdk/credential-provider-imds': 3.259.0 302 | '@aws-sdk/credential-provider-process': 3.257.0 303 | '@aws-sdk/credential-provider-sso': 3.264.0 304 | '@aws-sdk/credential-provider-web-identity': 3.257.0 305 | '@aws-sdk/property-provider': 3.257.0 306 | '@aws-sdk/shared-ini-file-loader': 3.257.0 307 | '@aws-sdk/types': 3.257.0 308 | tslib: 2.5.0 309 | transitivePeerDependencies: 310 | - aws-crt 311 | dev: false 312 | optional: true 313 | 314 | /@aws-sdk/credential-provider-node/3.264.0: 315 | resolution: {integrity: sha512-DPzL7oawcILs5Mduim9Z8SVeJaUpaDRVbUIrBHsMBu+N7Zuqtzr+0ckHc1bEi3iYq2QUCk5pH5vpQaZYkMlbtw==} 316 | engines: {node: '>=14.0.0'} 317 | dependencies: 318 | '@aws-sdk/credential-provider-env': 3.257.0 319 | '@aws-sdk/credential-provider-imds': 3.259.0 320 | '@aws-sdk/credential-provider-ini': 3.264.0 321 | '@aws-sdk/credential-provider-process': 3.257.0 322 | '@aws-sdk/credential-provider-sso': 3.264.0 323 | '@aws-sdk/credential-provider-web-identity': 3.257.0 324 | '@aws-sdk/property-provider': 3.257.0 325 | '@aws-sdk/shared-ini-file-loader': 3.257.0 326 | '@aws-sdk/types': 3.257.0 327 | tslib: 2.5.0 328 | transitivePeerDependencies: 329 | - aws-crt 330 | dev: false 331 | optional: true 332 | 333 | /@aws-sdk/credential-provider-process/3.257.0: 334 | resolution: {integrity: sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==} 335 | engines: {node: '>=14.0.0'} 336 | dependencies: 337 | '@aws-sdk/property-provider': 3.257.0 338 | '@aws-sdk/shared-ini-file-loader': 3.257.0 339 | '@aws-sdk/types': 3.257.0 340 | tslib: 2.5.0 341 | dev: false 342 | optional: true 343 | 344 | /@aws-sdk/credential-provider-sso/3.264.0: 345 | resolution: {integrity: sha512-CJuAlqIIJap6LXoqimvEAnYZ7Kb5pTbiS3e+aY+fajO3OPujmQpHuiY8kOmscjwZ4ErJdEskivcTGwXph0dPZQ==} 346 | engines: {node: '>=14.0.0'} 347 | dependencies: 348 | '@aws-sdk/client-sso': 3.264.0 349 | '@aws-sdk/property-provider': 3.257.0 350 | '@aws-sdk/shared-ini-file-loader': 3.257.0 351 | '@aws-sdk/token-providers': 3.264.0 352 | '@aws-sdk/types': 3.257.0 353 | tslib: 2.5.0 354 | transitivePeerDependencies: 355 | - aws-crt 356 | dev: false 357 | optional: true 358 | 359 | /@aws-sdk/credential-provider-web-identity/3.257.0: 360 | resolution: {integrity: sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==} 361 | engines: {node: '>=14.0.0'} 362 | dependencies: 363 | '@aws-sdk/property-provider': 3.257.0 364 | '@aws-sdk/types': 3.257.0 365 | tslib: 2.5.0 366 | dev: false 367 | optional: true 368 | 369 | /@aws-sdk/credential-providers/3.264.0: 370 | resolution: {integrity: sha512-4iSr1Z7Uf8uDraQ7JYoMotVLhmnGFAGsH559KBPxuxjMjg2lku9GA5V1zw7SNV8FEcj+Sh5HrpJvJ7P1kA+YjA==} 371 | engines: {node: '>=14.0.0'} 372 | requiresBuild: true 373 | dependencies: 374 | '@aws-sdk/client-cognito-identity': 3.264.0 375 | '@aws-sdk/client-sso': 3.264.0 376 | '@aws-sdk/client-sts': 3.264.0 377 | '@aws-sdk/credential-provider-cognito-identity': 3.264.0 378 | '@aws-sdk/credential-provider-env': 3.257.0 379 | '@aws-sdk/credential-provider-imds': 3.259.0 380 | '@aws-sdk/credential-provider-ini': 3.264.0 381 | '@aws-sdk/credential-provider-node': 3.264.0 382 | '@aws-sdk/credential-provider-process': 3.257.0 383 | '@aws-sdk/credential-provider-sso': 3.264.0 384 | '@aws-sdk/credential-provider-web-identity': 3.257.0 385 | '@aws-sdk/property-provider': 3.257.0 386 | '@aws-sdk/shared-ini-file-loader': 3.257.0 387 | '@aws-sdk/types': 3.257.0 388 | tslib: 2.5.0 389 | transitivePeerDependencies: 390 | - aws-crt 391 | dev: false 392 | optional: true 393 | 394 | /@aws-sdk/fetch-http-handler/3.257.0: 395 | resolution: {integrity: sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==} 396 | dependencies: 397 | '@aws-sdk/protocol-http': 3.257.0 398 | '@aws-sdk/querystring-builder': 3.257.0 399 | '@aws-sdk/types': 3.257.0 400 | '@aws-sdk/util-base64': 3.208.0 401 | tslib: 2.5.0 402 | dev: false 403 | optional: true 404 | 405 | /@aws-sdk/hash-node/3.257.0: 406 | resolution: {integrity: sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==} 407 | engines: {node: '>=14.0.0'} 408 | dependencies: 409 | '@aws-sdk/types': 3.257.0 410 | '@aws-sdk/util-buffer-from': 3.208.0 411 | '@aws-sdk/util-utf8': 3.254.0 412 | tslib: 2.5.0 413 | dev: false 414 | optional: true 415 | 416 | /@aws-sdk/invalid-dependency/3.257.0: 417 | resolution: {integrity: sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==} 418 | dependencies: 419 | '@aws-sdk/types': 3.257.0 420 | tslib: 2.5.0 421 | dev: false 422 | optional: true 423 | 424 | /@aws-sdk/is-array-buffer/3.201.0: 425 | resolution: {integrity: sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==} 426 | engines: {node: '>=14.0.0'} 427 | dependencies: 428 | tslib: 2.5.0 429 | dev: false 430 | optional: true 431 | 432 | /@aws-sdk/middleware-content-length/3.257.0: 433 | resolution: {integrity: sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==} 434 | engines: {node: '>=14.0.0'} 435 | dependencies: 436 | '@aws-sdk/protocol-http': 3.257.0 437 | '@aws-sdk/types': 3.257.0 438 | tslib: 2.5.0 439 | dev: false 440 | optional: true 441 | 442 | /@aws-sdk/middleware-endpoint/3.264.0: 443 | resolution: {integrity: sha512-H9JEAug3Oo3IA2wZIplVVF6NtauCIjICXWgbNbA8Im+I2KPe0jWtOdtQv4U+tqHe9T4zIixaCM3gjUBld+FoOA==} 444 | engines: {node: '>=14.0.0'} 445 | dependencies: 446 | '@aws-sdk/middleware-serde': 3.257.0 447 | '@aws-sdk/protocol-http': 3.257.0 448 | '@aws-sdk/signature-v4': 3.257.0 449 | '@aws-sdk/types': 3.257.0 450 | '@aws-sdk/url-parser': 3.257.0 451 | '@aws-sdk/util-config-provider': 3.208.0 452 | '@aws-sdk/util-middleware': 3.257.0 453 | tslib: 2.5.0 454 | dev: false 455 | optional: true 456 | 457 | /@aws-sdk/middleware-host-header/3.257.0: 458 | resolution: {integrity: sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==} 459 | engines: {node: '>=14.0.0'} 460 | dependencies: 461 | '@aws-sdk/protocol-http': 3.257.0 462 | '@aws-sdk/types': 3.257.0 463 | tslib: 2.5.0 464 | dev: false 465 | optional: true 466 | 467 | /@aws-sdk/middleware-logger/3.257.0: 468 | resolution: {integrity: sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==} 469 | engines: {node: '>=14.0.0'} 470 | dependencies: 471 | '@aws-sdk/types': 3.257.0 472 | tslib: 2.5.0 473 | dev: false 474 | optional: true 475 | 476 | /@aws-sdk/middleware-recursion-detection/3.257.0: 477 | resolution: {integrity: sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==} 478 | engines: {node: '>=14.0.0'} 479 | dependencies: 480 | '@aws-sdk/protocol-http': 3.257.0 481 | '@aws-sdk/types': 3.257.0 482 | tslib: 2.5.0 483 | dev: false 484 | optional: true 485 | 486 | /@aws-sdk/middleware-retry/3.259.0: 487 | resolution: {integrity: sha512-pVh1g8e84MAi7eVtWLiiiCtn82LzxOP7+LxTRHatmgIeN22yGQBZILliPDJypUPvDYlwxI1ekiK+oPTcte0Uww==} 488 | engines: {node: '>=14.0.0'} 489 | dependencies: 490 | '@aws-sdk/protocol-http': 3.257.0 491 | '@aws-sdk/service-error-classification': 3.257.0 492 | '@aws-sdk/types': 3.257.0 493 | '@aws-sdk/util-middleware': 3.257.0 494 | '@aws-sdk/util-retry': 3.257.0 495 | tslib: 2.5.0 496 | uuid: 8.3.2 497 | dev: false 498 | optional: true 499 | 500 | /@aws-sdk/middleware-sdk-sts/3.257.0: 501 | resolution: {integrity: sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==} 502 | engines: {node: '>=14.0.0'} 503 | dependencies: 504 | '@aws-sdk/middleware-signing': 3.257.0 505 | '@aws-sdk/property-provider': 3.257.0 506 | '@aws-sdk/protocol-http': 3.257.0 507 | '@aws-sdk/signature-v4': 3.257.0 508 | '@aws-sdk/types': 3.257.0 509 | tslib: 2.5.0 510 | dev: false 511 | optional: true 512 | 513 | /@aws-sdk/middleware-serde/3.257.0: 514 | resolution: {integrity: sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==} 515 | engines: {node: '>=14.0.0'} 516 | dependencies: 517 | '@aws-sdk/types': 3.257.0 518 | tslib: 2.5.0 519 | dev: false 520 | optional: true 521 | 522 | /@aws-sdk/middleware-signing/3.257.0: 523 | resolution: {integrity: sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==} 524 | engines: {node: '>=14.0.0'} 525 | dependencies: 526 | '@aws-sdk/property-provider': 3.257.0 527 | '@aws-sdk/protocol-http': 3.257.0 528 | '@aws-sdk/signature-v4': 3.257.0 529 | '@aws-sdk/types': 3.257.0 530 | '@aws-sdk/util-middleware': 3.257.0 531 | tslib: 2.5.0 532 | dev: false 533 | optional: true 534 | 535 | /@aws-sdk/middleware-stack/3.257.0: 536 | resolution: {integrity: sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==} 537 | engines: {node: '>=14.0.0'} 538 | dependencies: 539 | tslib: 2.5.0 540 | dev: false 541 | optional: true 542 | 543 | /@aws-sdk/middleware-user-agent/3.257.0: 544 | resolution: {integrity: sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==} 545 | engines: {node: '>=14.0.0'} 546 | dependencies: 547 | '@aws-sdk/protocol-http': 3.257.0 548 | '@aws-sdk/types': 3.257.0 549 | tslib: 2.5.0 550 | dev: false 551 | optional: true 552 | 553 | /@aws-sdk/node-config-provider/3.259.0: 554 | resolution: {integrity: sha512-DUOqr71oonBvM6yKPdhDBmraqgXHCFrVWFw7hc5ZNxL2wS/EsbKfGPJp+C+SUgpn1upIWPNnh/bNoLAbBkcLsA==} 555 | engines: {node: '>=14.0.0'} 556 | dependencies: 557 | '@aws-sdk/property-provider': 3.257.0 558 | '@aws-sdk/shared-ini-file-loader': 3.257.0 559 | '@aws-sdk/types': 3.257.0 560 | tslib: 2.5.0 561 | dev: false 562 | optional: true 563 | 564 | /@aws-sdk/node-http-handler/3.257.0: 565 | resolution: {integrity: sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==} 566 | engines: {node: '>=14.0.0'} 567 | dependencies: 568 | '@aws-sdk/abort-controller': 3.257.0 569 | '@aws-sdk/protocol-http': 3.257.0 570 | '@aws-sdk/querystring-builder': 3.257.0 571 | '@aws-sdk/types': 3.257.0 572 | tslib: 2.5.0 573 | dev: false 574 | optional: true 575 | 576 | /@aws-sdk/property-provider/3.257.0: 577 | resolution: {integrity: sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==} 578 | engines: {node: '>=14.0.0'} 579 | dependencies: 580 | '@aws-sdk/types': 3.257.0 581 | tslib: 2.5.0 582 | dev: false 583 | optional: true 584 | 585 | /@aws-sdk/protocol-http/3.257.0: 586 | resolution: {integrity: sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==} 587 | engines: {node: '>=14.0.0'} 588 | dependencies: 589 | '@aws-sdk/types': 3.257.0 590 | tslib: 2.5.0 591 | dev: false 592 | optional: true 593 | 594 | /@aws-sdk/querystring-builder/3.257.0: 595 | resolution: {integrity: sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==} 596 | engines: {node: '>=14.0.0'} 597 | dependencies: 598 | '@aws-sdk/types': 3.257.0 599 | '@aws-sdk/util-uri-escape': 3.201.0 600 | tslib: 2.5.0 601 | dev: false 602 | optional: true 603 | 604 | /@aws-sdk/querystring-parser/3.257.0: 605 | resolution: {integrity: sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==} 606 | engines: {node: '>=14.0.0'} 607 | dependencies: 608 | '@aws-sdk/types': 3.257.0 609 | tslib: 2.5.0 610 | dev: false 611 | optional: true 612 | 613 | /@aws-sdk/service-error-classification/3.257.0: 614 | resolution: {integrity: sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==} 615 | engines: {node: '>=14.0.0'} 616 | dev: false 617 | optional: true 618 | 619 | /@aws-sdk/shared-ini-file-loader/3.257.0: 620 | resolution: {integrity: sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==} 621 | engines: {node: '>=14.0.0'} 622 | dependencies: 623 | '@aws-sdk/types': 3.257.0 624 | tslib: 2.5.0 625 | dev: false 626 | optional: true 627 | 628 | /@aws-sdk/signature-v4/3.257.0: 629 | resolution: {integrity: sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==} 630 | engines: {node: '>=14.0.0'} 631 | dependencies: 632 | '@aws-sdk/is-array-buffer': 3.201.0 633 | '@aws-sdk/types': 3.257.0 634 | '@aws-sdk/util-hex-encoding': 3.201.0 635 | '@aws-sdk/util-middleware': 3.257.0 636 | '@aws-sdk/util-uri-escape': 3.201.0 637 | '@aws-sdk/util-utf8': 3.254.0 638 | tslib: 2.5.0 639 | dev: false 640 | optional: true 641 | 642 | /@aws-sdk/smithy-client/3.261.0: 643 | resolution: {integrity: sha512-j8XQEa3caZUVFVZfhJjaskw80O/tB+IXu84HMN44N7UkXaCFHirUsNjTDztJhnVXf/gKXzIqUqprfRnOvwLtIg==} 644 | engines: {node: '>=14.0.0'} 645 | dependencies: 646 | '@aws-sdk/middleware-stack': 3.257.0 647 | '@aws-sdk/types': 3.257.0 648 | tslib: 2.5.0 649 | dev: false 650 | optional: true 651 | 652 | /@aws-sdk/token-providers/3.264.0: 653 | resolution: {integrity: sha512-1N54FCdBJRqrwFWHUoDpGI0rKhI29Or9ZwGjjcBzKzLhz5sEF/DEhuID7h1/KKEkXdQ0+lmXOFGMMrahrMpOow==} 654 | engines: {node: '>=14.0.0'} 655 | dependencies: 656 | '@aws-sdk/client-sso-oidc': 3.264.0 657 | '@aws-sdk/property-provider': 3.257.0 658 | '@aws-sdk/shared-ini-file-loader': 3.257.0 659 | '@aws-sdk/types': 3.257.0 660 | tslib: 2.5.0 661 | transitivePeerDependencies: 662 | - aws-crt 663 | dev: false 664 | optional: true 665 | 666 | /@aws-sdk/types/3.257.0: 667 | resolution: {integrity: sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==} 668 | engines: {node: '>=14.0.0'} 669 | dependencies: 670 | tslib: 2.5.0 671 | dev: false 672 | optional: true 673 | 674 | /@aws-sdk/url-parser/3.257.0: 675 | resolution: {integrity: sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==} 676 | dependencies: 677 | '@aws-sdk/querystring-parser': 3.257.0 678 | '@aws-sdk/types': 3.257.0 679 | tslib: 2.5.0 680 | dev: false 681 | optional: true 682 | 683 | /@aws-sdk/util-base64/3.208.0: 684 | resolution: {integrity: sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg==} 685 | engines: {node: '>=14.0.0'} 686 | dependencies: 687 | '@aws-sdk/util-buffer-from': 3.208.0 688 | tslib: 2.5.0 689 | dev: false 690 | optional: true 691 | 692 | /@aws-sdk/util-body-length-browser/3.188.0: 693 | resolution: {integrity: sha512-8VpnwFWXhnZ/iRSl9mTf+VKOX9wDE8QtN4bj9pBfxwf90H1X7E8T6NkiZD3k+HubYf2J94e7DbeHs7fuCPW5Qg==} 694 | dependencies: 695 | tslib: 2.5.0 696 | dev: false 697 | optional: true 698 | 699 | /@aws-sdk/util-body-length-node/3.208.0: 700 | resolution: {integrity: sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg==} 701 | engines: {node: '>=14.0.0'} 702 | dependencies: 703 | tslib: 2.5.0 704 | dev: false 705 | optional: true 706 | 707 | /@aws-sdk/util-buffer-from/3.208.0: 708 | resolution: {integrity: sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw==} 709 | engines: {node: '>=14.0.0'} 710 | dependencies: 711 | '@aws-sdk/is-array-buffer': 3.201.0 712 | tslib: 2.5.0 713 | dev: false 714 | optional: true 715 | 716 | /@aws-sdk/util-config-provider/3.208.0: 717 | resolution: {integrity: sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==} 718 | engines: {node: '>=14.0.0'} 719 | dependencies: 720 | tslib: 2.5.0 721 | dev: false 722 | optional: true 723 | 724 | /@aws-sdk/util-defaults-mode-browser/3.261.0: 725 | resolution: {integrity: sha512-lX3X1NfzQVV6cakepGV24uRcqevlDnQ8VgaCV8dhnw1FVThueFigyoFaUA02+uRXbV9KIbNWkEvweNtm2wvyDw==} 726 | engines: {node: '>= 10.0.0'} 727 | dependencies: 728 | '@aws-sdk/property-provider': 3.257.0 729 | '@aws-sdk/types': 3.257.0 730 | bowser: 2.11.0 731 | tslib: 2.5.0 732 | dev: false 733 | optional: true 734 | 735 | /@aws-sdk/util-defaults-mode-node/3.261.0: 736 | resolution: {integrity: sha512-4AK6yu4bOmHSocUdbGoEHbNXB09UA58ON2HBHY4NxMBuFBAd9XB2tYiyhce+Cm+o+lHbS8oQnw0VZw16WMzzew==} 737 | engines: {node: '>= 10.0.0'} 738 | dependencies: 739 | '@aws-sdk/config-resolver': 3.259.0 740 | '@aws-sdk/credential-provider-imds': 3.259.0 741 | '@aws-sdk/node-config-provider': 3.259.0 742 | '@aws-sdk/property-provider': 3.257.0 743 | '@aws-sdk/types': 3.257.0 744 | tslib: 2.5.0 745 | dev: false 746 | optional: true 747 | 748 | /@aws-sdk/util-endpoints/3.257.0: 749 | resolution: {integrity: sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==} 750 | engines: {node: '>=14.0.0'} 751 | dependencies: 752 | '@aws-sdk/types': 3.257.0 753 | tslib: 2.5.0 754 | dev: false 755 | optional: true 756 | 757 | /@aws-sdk/util-hex-encoding/3.201.0: 758 | resolution: {integrity: sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA==} 759 | engines: {node: '>=14.0.0'} 760 | dependencies: 761 | tslib: 2.5.0 762 | dev: false 763 | optional: true 764 | 765 | /@aws-sdk/util-locate-window/3.208.0: 766 | resolution: {integrity: sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==} 767 | engines: {node: '>=14.0.0'} 768 | dependencies: 769 | tslib: 2.5.0 770 | dev: false 771 | optional: true 772 | 773 | /@aws-sdk/util-middleware/3.257.0: 774 | resolution: {integrity: sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==} 775 | engines: {node: '>=14.0.0'} 776 | dependencies: 777 | tslib: 2.5.0 778 | dev: false 779 | optional: true 780 | 781 | /@aws-sdk/util-retry/3.257.0: 782 | resolution: {integrity: sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==} 783 | engines: {node: '>= 14.0.0'} 784 | dependencies: 785 | '@aws-sdk/service-error-classification': 3.257.0 786 | tslib: 2.5.0 787 | dev: false 788 | optional: true 789 | 790 | /@aws-sdk/util-uri-escape/3.201.0: 791 | resolution: {integrity: sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==} 792 | engines: {node: '>=14.0.0'} 793 | dependencies: 794 | tslib: 2.5.0 795 | dev: false 796 | optional: true 797 | 798 | /@aws-sdk/util-user-agent-browser/3.257.0: 799 | resolution: {integrity: sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==} 800 | dependencies: 801 | '@aws-sdk/types': 3.257.0 802 | bowser: 2.11.0 803 | tslib: 2.5.0 804 | dev: false 805 | optional: true 806 | 807 | /@aws-sdk/util-user-agent-node/3.259.0: 808 | resolution: {integrity: sha512-R0VTmNs+ySDDebU98BUbsLyeIM5YmAEr9esPpy15XfSy3AWmAeru8nLlztdaLilHZzLIDzvM2t7NGk/FzZFCvA==} 809 | engines: {node: '>=14.0.0'} 810 | peerDependencies: 811 | aws-crt: '>=1.0.0' 812 | peerDependenciesMeta: 813 | aws-crt: 814 | optional: true 815 | dependencies: 816 | '@aws-sdk/node-config-provider': 3.259.0 817 | '@aws-sdk/types': 3.257.0 818 | tslib: 2.5.0 819 | dev: false 820 | optional: true 821 | 822 | /@aws-sdk/util-utf8-browser/3.259.0: 823 | resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} 824 | dependencies: 825 | tslib: 2.5.0 826 | dev: false 827 | optional: true 828 | 829 | /@aws-sdk/util-utf8/3.254.0: 830 | resolution: {integrity: sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==} 831 | engines: {node: '>=14.0.0'} 832 | dependencies: 833 | '@aws-sdk/util-buffer-from': 3.208.0 834 | tslib: 2.5.0 835 | dev: false 836 | optional: true 837 | 838 | /@esbuild-kit/cjs-loader/2.4.1: 839 | resolution: {integrity: sha512-lhc/XLith28QdW0HpHZvZKkorWgmCNT7sVelMHDj3HFdTfdqkwEKvT+aXVQtNAmCC39VJhunDkWhONWB7335mg==} 840 | dependencies: 841 | '@esbuild-kit/core-utils': 3.0.0 842 | get-tsconfig: 4.3.0 843 | dev: true 844 | 845 | /@esbuild-kit/core-utils/3.0.0: 846 | resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} 847 | dependencies: 848 | esbuild: 0.15.18 849 | source-map-support: 0.5.21 850 | dev: true 851 | 852 | /@esbuild-kit/esm-loader/2.5.4: 853 | resolution: {integrity: sha512-afmtLf6uqxD5IgwCzomtqCYIgz/sjHzCWZFvfS5+FzeYxOURPUo4QcHtqJxbxWOMOogKriZanN/1bJQE/ZL93A==} 854 | dependencies: 855 | '@esbuild-kit/core-utils': 3.0.0 856 | get-tsconfig: 4.3.0 857 | dev: true 858 | 859 | /@esbuild/android-arm/0.15.18: 860 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 861 | engines: {node: '>=12'} 862 | cpu: [arm] 863 | os: [android] 864 | requiresBuild: true 865 | dev: true 866 | optional: true 867 | 868 | /@esbuild/linux-loong64/0.15.18: 869 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 870 | engines: {node: '>=12'} 871 | cpu: [loong64] 872 | os: [linux] 873 | requiresBuild: true 874 | dev: true 875 | optional: true 876 | 877 | /@fastify/ajv-compiler/3.5.0: 878 | resolution: {integrity: sha512-ebbEtlI7dxXF5ziNdr05mOY8NnDiPB1XvAlLHctRt/Rc+C3LCOVW5imUVX+mhvUhnNzmPBHewUkOFgGlCxgdAA==} 879 | dependencies: 880 | ajv: 8.12.0 881 | ajv-formats: 2.1.1 882 | fast-uri: 2.2.0 883 | dev: false 884 | 885 | /@fastify/deepmerge/1.3.0: 886 | resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} 887 | dev: false 888 | 889 | /@fastify/error/3.2.0: 890 | resolution: {integrity: sha512-KAfcLa+CnknwVi5fWogrLXgidLic+GXnLjijXdpl8pvkvbXU5BGa37iZO9FGvsh9ZL4y+oFi5cbHBm5UOG+dmQ==} 891 | dev: false 892 | 893 | /@fastify/fast-json-stringify-compiler/4.2.0: 894 | resolution: {integrity: sha512-ypZynRvXA3dibfPykQN3RB5wBdEUgSGgny8Qc6k163wYPLD4mEGEDkACp+00YmqkGvIm8D/xYoHajwyEdWD/eg==} 895 | dependencies: 896 | fast-json-stringify: 5.5.0 897 | dev: false 898 | 899 | /@fastify/mongodb/6.2.0: 900 | resolution: {integrity: sha512-ed/kbWTd9TtDvg5IYHQ54g01twAlFlJRBcF31imVX4eQEhUNe9mvIQopVUHErqOjAtQRuF6uQeqTdpiJBx+4+A==} 901 | dependencies: 902 | fastify-plugin: 4.5.0 903 | mongodb: 4.13.0 904 | transitivePeerDependencies: 905 | - aws-crt 906 | dev: false 907 | 908 | /@types/node/18.11.19: 909 | resolution: {integrity: sha512-YUgMWAQBWLObABqrvx8qKO1enAvBUdjZOAWQ5grBAkp5LQv45jBvYKZ3oFS9iKRCQyFjqw6iuEa1vmFqtxYLZw==} 910 | 911 | /@types/webidl-conversions/7.0.0: 912 | resolution: {integrity: sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==} 913 | dev: false 914 | 915 | /@types/whatwg-url/8.2.2: 916 | resolution: {integrity: sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==} 917 | dependencies: 918 | '@types/node': 18.11.19 919 | '@types/webidl-conversions': 7.0.0 920 | dev: false 921 | 922 | /abort-controller/3.0.0: 923 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 924 | engines: {node: '>=6.5'} 925 | dependencies: 926 | event-target-shim: 5.0.1 927 | 928 | /abstract-logging/2.0.1: 929 | resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} 930 | dev: false 931 | 932 | /ajv-formats/2.1.1: 933 | resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} 934 | peerDependenciesMeta: 935 | ajv: 936 | optional: true 937 | dependencies: 938 | ajv: 8.12.0 939 | dev: false 940 | 941 | /ajv/8.12.0: 942 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 943 | dependencies: 944 | fast-deep-equal: 3.1.3 945 | json-schema-traverse: 1.0.0 946 | require-from-string: 2.0.2 947 | uri-js: 4.4.1 948 | dev: false 949 | 950 | /archy/1.0.0: 951 | resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} 952 | dev: false 953 | 954 | /atomic-sleep/1.0.0: 955 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 956 | engines: {node: '>=8.0.0'} 957 | 958 | /avvio/8.2.0: 959 | resolution: {integrity: sha512-bbCQdg7bpEv6kGH41RO/3B2/GMMmJSo2iBK+X8AWN9mujtfUipMDfIjsgHCfpnKqoGEQrrmCDKSa5OQ19+fDmg==} 960 | dependencies: 961 | archy: 1.0.0 962 | debug: 4.3.4 963 | fastq: 1.15.0 964 | transitivePeerDependencies: 965 | - supports-color 966 | dev: false 967 | 968 | /balanced-match/1.0.2: 969 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 970 | dev: true 971 | 972 | /base64-js/1.5.1: 973 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 974 | 975 | /bowser/2.11.0: 976 | resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} 977 | dev: false 978 | optional: true 979 | 980 | /brace-expansion/2.0.1: 981 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 982 | dependencies: 983 | balanced-match: 1.0.2 984 | dev: true 985 | 986 | /bson/4.7.2: 987 | resolution: {integrity: sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==} 988 | engines: {node: '>=6.9.0'} 989 | dependencies: 990 | buffer: 5.7.1 991 | dev: false 992 | 993 | /buffer-from/1.1.2: 994 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 995 | dev: true 996 | 997 | /buffer/5.7.1: 998 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 999 | dependencies: 1000 | base64-js: 1.5.1 1001 | ieee754: 1.2.1 1002 | dev: false 1003 | 1004 | /buffer/6.0.3: 1005 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 1006 | dependencies: 1007 | base64-js: 1.5.1 1008 | ieee754: 1.2.1 1009 | 1010 | /colorette/2.0.19: 1011 | resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} 1012 | dev: true 1013 | 1014 | /cookie/0.5.0: 1015 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 1016 | engines: {node: '>= 0.6'} 1017 | dev: false 1018 | 1019 | /dateformat/4.6.3: 1020 | resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} 1021 | dev: true 1022 | 1023 | /debug/4.3.4: 1024 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1025 | engines: {node: '>=6.0'} 1026 | peerDependencies: 1027 | supports-color: '*' 1028 | peerDependenciesMeta: 1029 | supports-color: 1030 | optional: true 1031 | dependencies: 1032 | ms: 2.1.2 1033 | dev: false 1034 | 1035 | /end-of-stream/1.4.4: 1036 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1037 | dependencies: 1038 | once: 1.4.0 1039 | dev: true 1040 | 1041 | /esbuild-android-64/0.15.18: 1042 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 1043 | engines: {node: '>=12'} 1044 | cpu: [x64] 1045 | os: [android] 1046 | requiresBuild: true 1047 | dev: true 1048 | optional: true 1049 | 1050 | /esbuild-android-arm64/0.15.18: 1051 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 1052 | engines: {node: '>=12'} 1053 | cpu: [arm64] 1054 | os: [android] 1055 | requiresBuild: true 1056 | dev: true 1057 | optional: true 1058 | 1059 | /esbuild-darwin-64/0.15.18: 1060 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 1061 | engines: {node: '>=12'} 1062 | cpu: [x64] 1063 | os: [darwin] 1064 | requiresBuild: true 1065 | dev: true 1066 | optional: true 1067 | 1068 | /esbuild-darwin-arm64/0.15.18: 1069 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 1070 | engines: {node: '>=12'} 1071 | cpu: [arm64] 1072 | os: [darwin] 1073 | requiresBuild: true 1074 | dev: true 1075 | optional: true 1076 | 1077 | /esbuild-freebsd-64/0.15.18: 1078 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 1079 | engines: {node: '>=12'} 1080 | cpu: [x64] 1081 | os: [freebsd] 1082 | requiresBuild: true 1083 | dev: true 1084 | optional: true 1085 | 1086 | /esbuild-freebsd-arm64/0.15.18: 1087 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 1088 | engines: {node: '>=12'} 1089 | cpu: [arm64] 1090 | os: [freebsd] 1091 | requiresBuild: true 1092 | dev: true 1093 | optional: true 1094 | 1095 | /esbuild-linux-32/0.15.18: 1096 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 1097 | engines: {node: '>=12'} 1098 | cpu: [ia32] 1099 | os: [linux] 1100 | requiresBuild: true 1101 | dev: true 1102 | optional: true 1103 | 1104 | /esbuild-linux-64/0.15.18: 1105 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 1106 | engines: {node: '>=12'} 1107 | cpu: [x64] 1108 | os: [linux] 1109 | requiresBuild: true 1110 | dev: true 1111 | optional: true 1112 | 1113 | /esbuild-linux-arm/0.15.18: 1114 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 1115 | engines: {node: '>=12'} 1116 | cpu: [arm] 1117 | os: [linux] 1118 | requiresBuild: true 1119 | dev: true 1120 | optional: true 1121 | 1122 | /esbuild-linux-arm64/0.15.18: 1123 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 1124 | engines: {node: '>=12'} 1125 | cpu: [arm64] 1126 | os: [linux] 1127 | requiresBuild: true 1128 | dev: true 1129 | optional: true 1130 | 1131 | /esbuild-linux-mips64le/0.15.18: 1132 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 1133 | engines: {node: '>=12'} 1134 | cpu: [mips64el] 1135 | os: [linux] 1136 | requiresBuild: true 1137 | dev: true 1138 | optional: true 1139 | 1140 | /esbuild-linux-ppc64le/0.15.18: 1141 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 1142 | engines: {node: '>=12'} 1143 | cpu: [ppc64] 1144 | os: [linux] 1145 | requiresBuild: true 1146 | dev: true 1147 | optional: true 1148 | 1149 | /esbuild-linux-riscv64/0.15.18: 1150 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 1151 | engines: {node: '>=12'} 1152 | cpu: [riscv64] 1153 | os: [linux] 1154 | requiresBuild: true 1155 | dev: true 1156 | optional: true 1157 | 1158 | /esbuild-linux-s390x/0.15.18: 1159 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 1160 | engines: {node: '>=12'} 1161 | cpu: [s390x] 1162 | os: [linux] 1163 | requiresBuild: true 1164 | dev: true 1165 | optional: true 1166 | 1167 | /esbuild-netbsd-64/0.15.18: 1168 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 1169 | engines: {node: '>=12'} 1170 | cpu: [x64] 1171 | os: [netbsd] 1172 | requiresBuild: true 1173 | dev: true 1174 | optional: true 1175 | 1176 | /esbuild-openbsd-64/0.15.18: 1177 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 1178 | engines: {node: '>=12'} 1179 | cpu: [x64] 1180 | os: [openbsd] 1181 | requiresBuild: true 1182 | dev: true 1183 | optional: true 1184 | 1185 | /esbuild-sunos-64/0.15.18: 1186 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 1187 | engines: {node: '>=12'} 1188 | cpu: [x64] 1189 | os: [sunos] 1190 | requiresBuild: true 1191 | dev: true 1192 | optional: true 1193 | 1194 | /esbuild-windows-32/0.15.18: 1195 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 1196 | engines: {node: '>=12'} 1197 | cpu: [ia32] 1198 | os: [win32] 1199 | requiresBuild: true 1200 | dev: true 1201 | optional: true 1202 | 1203 | /esbuild-windows-64/0.15.18: 1204 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 1205 | engines: {node: '>=12'} 1206 | cpu: [x64] 1207 | os: [win32] 1208 | requiresBuild: true 1209 | dev: true 1210 | optional: true 1211 | 1212 | /esbuild-windows-arm64/0.15.18: 1213 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 1214 | engines: {node: '>=12'} 1215 | cpu: [arm64] 1216 | os: [win32] 1217 | requiresBuild: true 1218 | dev: true 1219 | optional: true 1220 | 1221 | /esbuild/0.15.18: 1222 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 1223 | engines: {node: '>=12'} 1224 | hasBin: true 1225 | requiresBuild: true 1226 | optionalDependencies: 1227 | '@esbuild/android-arm': 0.15.18 1228 | '@esbuild/linux-loong64': 0.15.18 1229 | esbuild-android-64: 0.15.18 1230 | esbuild-android-arm64: 0.15.18 1231 | esbuild-darwin-64: 0.15.18 1232 | esbuild-darwin-arm64: 0.15.18 1233 | esbuild-freebsd-64: 0.15.18 1234 | esbuild-freebsd-arm64: 0.15.18 1235 | esbuild-linux-32: 0.15.18 1236 | esbuild-linux-64: 0.15.18 1237 | esbuild-linux-arm: 0.15.18 1238 | esbuild-linux-arm64: 0.15.18 1239 | esbuild-linux-mips64le: 0.15.18 1240 | esbuild-linux-ppc64le: 0.15.18 1241 | esbuild-linux-riscv64: 0.15.18 1242 | esbuild-linux-s390x: 0.15.18 1243 | esbuild-netbsd-64: 0.15.18 1244 | esbuild-openbsd-64: 0.15.18 1245 | esbuild-sunos-64: 0.15.18 1246 | esbuild-windows-32: 0.15.18 1247 | esbuild-windows-64: 0.15.18 1248 | esbuild-windows-arm64: 0.15.18 1249 | dev: true 1250 | 1251 | /event-target-shim/5.0.1: 1252 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1253 | engines: {node: '>=6'} 1254 | 1255 | /events/3.3.0: 1256 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1257 | engines: {node: '>=0.8.x'} 1258 | 1259 | /fast-content-type-parse/1.0.0: 1260 | resolution: {integrity: sha512-Xbc4XcysUXcsP5aHUU7Nq3OwvHq97C+WnbkeIefpeYLX+ryzFJlU6OStFJhs6Ol0LkUGpcK+wL0JwfM+FCU5IA==} 1261 | dev: false 1262 | 1263 | /fast-copy/3.0.0: 1264 | resolution: {integrity: sha512-4HzS+9pQ5Yxtv13Lhs1Z1unMXamBdn5nA4bEi1abYpDNSpSp7ODYQ1KPMF6nTatfEzgH6/zPvXKU1zvHiUjWlA==} 1265 | dev: true 1266 | 1267 | /fast-decode-uri-component/1.0.1: 1268 | resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} 1269 | dev: false 1270 | 1271 | /fast-deep-equal/3.1.3: 1272 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1273 | dev: false 1274 | 1275 | /fast-json-stringify/5.5.0: 1276 | resolution: {integrity: sha512-rmw2Z8/mLkND8zI+3KTYIkNPEoF5v6GqDP/o+g7H3vjdWjBwuKpgAYFHIzL6ORRB+iqDjjtJnLIW9Mzxn5szOA==} 1277 | dependencies: 1278 | '@fastify/deepmerge': 1.3.0 1279 | ajv: 8.12.0 1280 | ajv-formats: 2.1.1 1281 | fast-deep-equal: 3.1.3 1282 | fast-uri: 2.2.0 1283 | rfdc: 1.3.0 1284 | dev: false 1285 | 1286 | /fast-querystring/1.1.1: 1287 | resolution: {integrity: sha512-qR2r+e3HvhEFmpdHMv//U8FnFlnYjaC6QKDuaXALDkw2kvHO8WDjxH+f/rHGR4Me4pnk8p9JAkRNTjYHAKRn2Q==} 1288 | dependencies: 1289 | fast-decode-uri-component: 1.0.1 1290 | dev: false 1291 | 1292 | /fast-redact/3.1.2: 1293 | resolution: {integrity: sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==} 1294 | engines: {node: '>=6'} 1295 | dev: false 1296 | 1297 | /fast-safe-stringify/2.1.1: 1298 | resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} 1299 | dev: true 1300 | 1301 | /fast-uri/2.2.0: 1302 | resolution: {integrity: sha512-cIusKBIt/R/oI6z/1nyfe2FvGKVTohVRfvkOhvx0nCEW+xf5NoCXjAHcWp93uOUBchzYcsvPlrapAdX1uW+YGg==} 1303 | dev: false 1304 | 1305 | /fast-xml-parser/4.0.11: 1306 | resolution: {integrity: sha512-4aUg3aNRR/WjQAcpceODG1C3x3lFANXRo8+1biqfieHmg9pyMt7qB4lQV/Ta6sJCTbA5vfD8fnA8S54JATiFUA==} 1307 | hasBin: true 1308 | dependencies: 1309 | strnum: 1.0.5 1310 | dev: false 1311 | optional: true 1312 | 1313 | /fastify-plugin/4.5.0: 1314 | resolution: {integrity: sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg==} 1315 | dev: false 1316 | 1317 | /fastify/4.12.0: 1318 | resolution: {integrity: sha512-Hh2GCsOCqnOuewWSvqXlpq5V/9VA+/JkVoooQWUhrU6gryO9+/UGOoF/dprGcKSDxkM/9TkMXSffYp8eA/YhYQ==} 1319 | dependencies: 1320 | '@fastify/ajv-compiler': 3.5.0 1321 | '@fastify/error': 3.2.0 1322 | '@fastify/fast-json-stringify-compiler': 4.2.0 1323 | abstract-logging: 2.0.1 1324 | avvio: 8.2.0 1325 | fast-content-type-parse: 1.0.0 1326 | find-my-way: 7.4.0 1327 | light-my-request: 5.8.0 1328 | pino: 8.8.0 1329 | process-warning: 2.1.0 1330 | proxy-addr: 2.0.7 1331 | rfdc: 1.3.0 1332 | secure-json-parse: 2.7.0 1333 | semver: 7.3.8 1334 | tiny-lru: 10.0.1 1335 | transitivePeerDependencies: 1336 | - supports-color 1337 | dev: false 1338 | 1339 | /fastq/1.15.0: 1340 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1341 | dependencies: 1342 | reusify: 1.0.4 1343 | dev: false 1344 | 1345 | /find-my-way/7.4.0: 1346 | resolution: {integrity: sha512-JFT7eURLU5FumlZ3VBGnveId82cZz7UR7OUu+THQJOwdQXxmS/g8v0KLoFhv97HreycOrmAbqjXD/4VG2j0uMQ==} 1347 | engines: {node: '>=14'} 1348 | dependencies: 1349 | fast-deep-equal: 3.1.3 1350 | fast-querystring: 1.1.1 1351 | safe-regex2: 2.0.0 1352 | dev: false 1353 | 1354 | /forwarded/0.2.0: 1355 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1356 | engines: {node: '>= 0.6'} 1357 | dev: false 1358 | 1359 | /fs.realpath/1.0.0: 1360 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1361 | dev: true 1362 | 1363 | /fsevents/2.3.2: 1364 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1365 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1366 | os: [darwin] 1367 | requiresBuild: true 1368 | dev: true 1369 | optional: true 1370 | 1371 | /get-tsconfig/4.3.0: 1372 | resolution: {integrity: sha512-YCcF28IqSay3fqpIu5y3Krg/utCBHBeoflkZyHj/QcqI2nrLPC3ZegS9CmIo+hJb8K7aiGsuUl7PwWVjNG2HQQ==} 1373 | dev: true 1374 | 1375 | /glob/8.1.0: 1376 | resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} 1377 | engines: {node: '>=12'} 1378 | dependencies: 1379 | fs.realpath: 1.0.0 1380 | inflight: 1.0.6 1381 | inherits: 2.0.4 1382 | minimatch: 5.1.6 1383 | once: 1.4.0 1384 | dev: true 1385 | 1386 | /help-me/4.2.0: 1387 | resolution: {integrity: sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==} 1388 | dependencies: 1389 | glob: 8.1.0 1390 | readable-stream: 3.6.0 1391 | dev: true 1392 | 1393 | /ieee754/1.2.1: 1394 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1395 | 1396 | /inflight/1.0.6: 1397 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1398 | dependencies: 1399 | once: 1.4.0 1400 | wrappy: 1.0.2 1401 | dev: true 1402 | 1403 | /inherits/2.0.4: 1404 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1405 | dev: true 1406 | 1407 | /ip/2.0.0: 1408 | resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} 1409 | dev: false 1410 | 1411 | /ipaddr.js/1.9.1: 1412 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1413 | engines: {node: '>= 0.10'} 1414 | dev: false 1415 | 1416 | /joycon/3.1.1: 1417 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1418 | engines: {node: '>=10'} 1419 | dev: true 1420 | 1421 | /json-schema-traverse/1.0.0: 1422 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1423 | dev: false 1424 | 1425 | /light-my-request/5.8.0: 1426 | resolution: {integrity: sha512-4BtD5C+VmyTpzlDPCZbsatZMJVgUIciSOwYhJDCbLffPZ35KoDkDj4zubLeHDEb35b4kkPeEv5imbh+RJxK/Pg==} 1427 | dependencies: 1428 | cookie: 0.5.0 1429 | process-warning: 2.1.0 1430 | set-cookie-parser: 2.5.1 1431 | dev: false 1432 | 1433 | /lru-cache/6.0.0: 1434 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1435 | engines: {node: '>=10'} 1436 | dependencies: 1437 | yallist: 4.0.0 1438 | dev: false 1439 | 1440 | /memory-pager/1.5.0: 1441 | resolution: {integrity: sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==} 1442 | dev: false 1443 | optional: true 1444 | 1445 | /minimatch/5.1.6: 1446 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 1447 | engines: {node: '>=10'} 1448 | dependencies: 1449 | brace-expansion: 2.0.1 1450 | dev: true 1451 | 1452 | /minimist/1.2.7: 1453 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 1454 | dev: true 1455 | 1456 | /mongodb-connection-string-url/2.6.0: 1457 | resolution: {integrity: sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==} 1458 | dependencies: 1459 | '@types/whatwg-url': 8.2.2 1460 | whatwg-url: 11.0.0 1461 | dev: false 1462 | 1463 | /mongodb/4.13.0: 1464 | resolution: {integrity: sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==} 1465 | engines: {node: '>=12.9.0'} 1466 | dependencies: 1467 | bson: 4.7.2 1468 | mongodb-connection-string-url: 2.6.0 1469 | socks: 2.7.1 1470 | optionalDependencies: 1471 | '@aws-sdk/credential-providers': 3.264.0 1472 | saslprep: 1.0.3 1473 | transitivePeerDependencies: 1474 | - aws-crt 1475 | dev: false 1476 | 1477 | /ms/2.1.2: 1478 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1479 | dev: false 1480 | 1481 | /on-exit-leak-free/2.1.0: 1482 | resolution: {integrity: sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==} 1483 | 1484 | /once/1.4.0: 1485 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1486 | dependencies: 1487 | wrappy: 1.0.2 1488 | dev: true 1489 | 1490 | /pino-abstract-transport/1.0.0: 1491 | resolution: {integrity: sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==} 1492 | dependencies: 1493 | readable-stream: 4.3.0 1494 | split2: 4.1.0 1495 | 1496 | /pino-pretty/9.1.1: 1497 | resolution: {integrity: sha512-iJrnjgR4FWQIXZkUF48oNgoRI9BpyMhaEmihonHeCnZ6F50ZHAS4YGfGBT/ZVNsPmd+hzkIPGzjKdY08+/yAXw==} 1498 | hasBin: true 1499 | dependencies: 1500 | colorette: 2.0.19 1501 | dateformat: 4.6.3 1502 | fast-copy: 3.0.0 1503 | fast-safe-stringify: 2.1.1 1504 | help-me: 4.2.0 1505 | joycon: 3.1.1 1506 | minimist: 1.2.7 1507 | on-exit-leak-free: 2.1.0 1508 | pino-abstract-transport: 1.0.0 1509 | pump: 3.0.0 1510 | readable-stream: 4.3.0 1511 | secure-json-parse: 2.7.0 1512 | sonic-boom: 3.2.1 1513 | strip-json-comments: 3.1.1 1514 | dev: true 1515 | 1516 | /pino-std-serializers/6.1.0: 1517 | resolution: {integrity: sha512-KO0m2f1HkrPe9S0ldjx7za9BJjeHqBku5Ch8JyxETxT8dEFGz1PwgrHaOQupVYitpzbFSYm7nnljxD8dik2c+g==} 1518 | dev: false 1519 | 1520 | /pino/8.8.0: 1521 | resolution: {integrity: sha512-cF8iGYeu2ODg2gIwgAHcPrtR63ILJz3f7gkogaHC/TXVVXxZgInmNYiIpDYEwgEkxZti2Se6P2W2DxlBIZe6eQ==} 1522 | hasBin: true 1523 | dependencies: 1524 | atomic-sleep: 1.0.0 1525 | fast-redact: 3.1.2 1526 | on-exit-leak-free: 2.1.0 1527 | pino-abstract-transport: 1.0.0 1528 | pino-std-serializers: 6.1.0 1529 | process-warning: 2.1.0 1530 | quick-format-unescaped: 4.0.4 1531 | real-require: 0.2.0 1532 | safe-stable-stringify: 2.4.2 1533 | sonic-boom: 3.2.1 1534 | thread-stream: 2.3.0 1535 | dev: false 1536 | 1537 | /process-warning/2.1.0: 1538 | resolution: {integrity: sha512-9C20RLxrZU/rFnxWncDkuF6O999NdIf3E1ws4B0ZeY3sRVPzWBMsYDE2lxjxhiXxg464cQTgKUGm8/i6y2YGXg==} 1539 | dev: false 1540 | 1541 | /process/0.11.10: 1542 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 1543 | engines: {node: '>= 0.6.0'} 1544 | 1545 | /proxy-addr/2.0.7: 1546 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1547 | engines: {node: '>= 0.10'} 1548 | dependencies: 1549 | forwarded: 0.2.0 1550 | ipaddr.js: 1.9.1 1551 | dev: false 1552 | 1553 | /pump/3.0.0: 1554 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1555 | dependencies: 1556 | end-of-stream: 1.4.4 1557 | once: 1.4.0 1558 | dev: true 1559 | 1560 | /punycode/2.3.0: 1561 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1562 | engines: {node: '>=6'} 1563 | dev: false 1564 | 1565 | /quick-format-unescaped/4.0.4: 1566 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1567 | dev: false 1568 | 1569 | /readable-stream/3.6.0: 1570 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 1571 | engines: {node: '>= 6'} 1572 | dependencies: 1573 | inherits: 2.0.4 1574 | string_decoder: 1.3.0 1575 | util-deprecate: 1.0.2 1576 | dev: true 1577 | 1578 | /readable-stream/4.3.0: 1579 | resolution: {integrity: sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==} 1580 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1581 | dependencies: 1582 | abort-controller: 3.0.0 1583 | buffer: 6.0.3 1584 | events: 3.3.0 1585 | process: 0.11.10 1586 | 1587 | /real-require/0.2.0: 1588 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1589 | engines: {node: '>= 12.13.0'} 1590 | dev: false 1591 | 1592 | /require-from-string/2.0.2: 1593 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1594 | engines: {node: '>=0.10.0'} 1595 | dev: false 1596 | 1597 | /ret/0.2.2: 1598 | resolution: {integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==} 1599 | engines: {node: '>=4'} 1600 | dev: false 1601 | 1602 | /reusify/1.0.4: 1603 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1604 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1605 | dev: false 1606 | 1607 | /rfdc/1.3.0: 1608 | resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} 1609 | dev: false 1610 | 1611 | /safe-buffer/5.2.1: 1612 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1613 | dev: true 1614 | 1615 | /safe-regex2/2.0.0: 1616 | resolution: {integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==} 1617 | dependencies: 1618 | ret: 0.2.2 1619 | dev: false 1620 | 1621 | /safe-stable-stringify/2.4.2: 1622 | resolution: {integrity: sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==} 1623 | engines: {node: '>=10'} 1624 | dev: false 1625 | 1626 | /saslprep/1.0.3: 1627 | resolution: {integrity: sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==} 1628 | engines: {node: '>=6'} 1629 | requiresBuild: true 1630 | dependencies: 1631 | sparse-bitfield: 3.0.3 1632 | dev: false 1633 | optional: true 1634 | 1635 | /secure-json-parse/2.7.0: 1636 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 1637 | 1638 | /semver/7.3.8: 1639 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 1640 | engines: {node: '>=10'} 1641 | hasBin: true 1642 | dependencies: 1643 | lru-cache: 6.0.0 1644 | dev: false 1645 | 1646 | /set-cookie-parser/2.5.1: 1647 | resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} 1648 | dev: false 1649 | 1650 | /smart-buffer/4.2.0: 1651 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 1652 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 1653 | dev: false 1654 | 1655 | /socks/2.7.1: 1656 | resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} 1657 | engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} 1658 | dependencies: 1659 | ip: 2.0.0 1660 | smart-buffer: 4.2.0 1661 | dev: false 1662 | 1663 | /sonic-boom/3.2.1: 1664 | resolution: {integrity: sha512-iITeTHxy3B9FGu8aVdiDXUVAcHMF9Ss0cCsAOo2HfCrmVGT3/DT5oYaeu0M/YKZDlKTvChEyPq0zI9Hf33EX6A==} 1665 | dependencies: 1666 | atomic-sleep: 1.0.0 1667 | 1668 | /source-map-support/0.5.21: 1669 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1670 | dependencies: 1671 | buffer-from: 1.1.2 1672 | source-map: 0.6.1 1673 | dev: true 1674 | 1675 | /source-map/0.6.1: 1676 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1677 | engines: {node: '>=0.10.0'} 1678 | dev: true 1679 | 1680 | /sparse-bitfield/3.0.3: 1681 | resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} 1682 | dependencies: 1683 | memory-pager: 1.5.0 1684 | dev: false 1685 | optional: true 1686 | 1687 | /split2/4.1.0: 1688 | resolution: {integrity: sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==} 1689 | engines: {node: '>= 10.x'} 1690 | 1691 | /string_decoder/1.3.0: 1692 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1693 | dependencies: 1694 | safe-buffer: 5.2.1 1695 | dev: true 1696 | 1697 | /strip-json-comments/3.1.1: 1698 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1699 | engines: {node: '>=8'} 1700 | dev: true 1701 | 1702 | /strnum/1.0.5: 1703 | resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} 1704 | dev: false 1705 | optional: true 1706 | 1707 | /thread-stream/2.3.0: 1708 | resolution: {integrity: sha512-kaDqm1DET9pp3NXwR8382WHbnpXnRkN9xGN9dQt3B2+dmXiW8X1SOwmFOxAErEQ47ObhZ96J6yhZNXuyCOL7KA==} 1709 | dependencies: 1710 | real-require: 0.2.0 1711 | dev: false 1712 | 1713 | /tiny-lru/10.0.1: 1714 | resolution: {integrity: sha512-Vst+6kEsWvb17Zpz14sRJV/f8bUWKhqm6Dc+v08iShmIJ/WxqWytHzCTd6m88pS33rE2zpX34TRmOpAJPloNCA==} 1715 | engines: {node: '>=6'} 1716 | dev: false 1717 | 1718 | /tr46/3.0.0: 1719 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} 1720 | engines: {node: '>=12'} 1721 | dependencies: 1722 | punycode: 2.3.0 1723 | dev: false 1724 | 1725 | /tslib/1.14.1: 1726 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1727 | dev: false 1728 | optional: true 1729 | 1730 | /tslib/2.5.0: 1731 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 1732 | dev: false 1733 | optional: true 1734 | 1735 | /tsx/3.12.2: 1736 | resolution: {integrity: sha512-ykAEkoBg30RXxeOMVeZwar+JH632dZn9EUJVyJwhfag62k6UO/dIyJEV58YuLF6e5BTdV/qmbQrpkWqjq9cUnQ==} 1737 | hasBin: true 1738 | dependencies: 1739 | '@esbuild-kit/cjs-loader': 2.4.1 1740 | '@esbuild-kit/core-utils': 3.0.0 1741 | '@esbuild-kit/esm-loader': 2.5.4 1742 | optionalDependencies: 1743 | fsevents: 2.3.2 1744 | dev: true 1745 | 1746 | /typescript/4.9.5: 1747 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1748 | engines: {node: '>=4.2.0'} 1749 | hasBin: true 1750 | dev: true 1751 | 1752 | /uri-js/4.4.1: 1753 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1754 | dependencies: 1755 | punycode: 2.3.0 1756 | dev: false 1757 | 1758 | /util-deprecate/1.0.2: 1759 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1760 | dev: true 1761 | 1762 | /uuid/8.3.2: 1763 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 1764 | hasBin: true 1765 | dev: false 1766 | optional: true 1767 | 1768 | /webidl-conversions/7.0.0: 1769 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1770 | engines: {node: '>=12'} 1771 | dev: false 1772 | 1773 | /whatwg-url/11.0.0: 1774 | resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} 1775 | engines: {node: '>=12'} 1776 | dependencies: 1777 | tr46: 3.0.0 1778 | webidl-conversions: 7.0.0 1779 | dev: false 1780 | 1781 | /wrappy/1.0.2: 1782 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1783 | dev: true 1784 | 1785 | /yallist/4.0.0: 1786 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1787 | dev: false 1788 | --------------------------------------------------------------------------------